在包中包含shinyBS

tan*_*sky 0 r package shiny shinybs

当我构建、加载和运行我自己的包时,如果我事先使用“library(shinyBS)”加载 ShinyBS,则它仅使用 ShinyBS 功能,否则工具提示不起作用..虽然闪亮的应用程序有效(没有shinyBS 功能)有网页可以通过浏览器控制台看到的错误..(关于一些丢失的文件..shinyBS.css 和shinyBS.js)

所以问题是:我如何生成、部署和运行我自己的闪亮包而不强迫用户事先加载 ShinyBS(做 'library(shinyBS)' )?!

谢谢!

Gre*_*lia 5

向 R 包添加依赖项的常用方法是ImportsDESCRIPTION文件的字段中添加包。这是Hadley Wickam 介绍的改编版本。

Package: mypackage
Title: What The Package Does (one line, title case required)
Version: 0.1
Authors@R: person("First", "Last", email = "first.last@example.com",
                  role = c("aut", "cre"))
Description: What the package does (one paragraph)
Depends: R (>= 3.1.0), shiny
Imports: shinyBS
License: What license is it under?
LazyData: true
Run Code Online (Sandbox Code Playgroud)

然后,你将需要指定它从功能shinyBS实际需要在封装包importsFromNAMESPACE的文件。或者,您也可以导入所有shinyBS函数

import(shinyBS)
Run Code Online (Sandbox Code Playgroud)

但是,在 的情况下shinyBSDepends由于onLoad/onAttach为该包定义挂钩的方式,您实际上需要将依赖项放在字段中。有关更多详细信息,请参见此处DESCRIPTION因此,您的文件应类似于以下示例

Package: mypackage
Title: What The Package Does (one line, title case required)
Version: 0.1
Authors@R: person("First", "Last", email = "first.last@example.com",
                  role = c("aut", "cre"))
Description: What the package does (one paragraph)
Depends: R (>= 3.1.0), shiny, shinyBS
License: What license is it under?
LazyData: true
Run Code Online (Sandbox Code Playgroud)

这是非常不寻常的,在我看来,这个问题应该由shinyBS开发人员解决。但是,同时使用该Depends字段来确保shinyBS已附加是解决您所描述问题的可行方法。