当我构建,加载并运行自己的程序包时,如果我事先使用“ library(shinyBS)”加载ShinyBS,则只有在使用ShinyBS功能,否则工具提示不起作用..尽管Shiny应用程序有效(没有ShinyBS功能)可以通过浏览器控制台看到网页错误。(关于一些丢失的文件..shinyBS.css和shinyBS.js)
所以问题是:如何生成,部署和运行自己的Shiny软件包,而不必强迫用户预先加载ShinyBS(执行'library(shinyBS)')?!
谢谢!
答案 0 :(得分:3)
向R程序包添加依赖项的通常方法是将程序包添加到Imports
文件的DESCRIPTION
字段中。这是Hadley Wickam's introduction的改编版本。
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
然后,您将需要在shinyBS
文件中的importsFrom
中指定软件包中实际需要NAMESPACE
软件包中的哪些功能。另外,您也可以使用
shinyBS
函数
import(shinyBS)
但是,对于shinyBS
,由于为该程序包定义了Depends
钩子的方式,实际上您将需要将依赖项放在onLoad/onAttach
字段中。有关更多详细信息,请参见here。因此,您的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
这是非常不寻常的,我认为应该从shinyBS
开发人员那里解决此问题。但是,与此同时,使用Depends
字段来确保附加了shinyBS
是解决您所描述问题的可行方法。
答案 1 :(得分:1)
您应使用NAMESPACE
声明需要将shinyBS
装入您的包裹中。
例如,在您的NAMESPACE
文件中,您应该这样做:
import(shinyBS)
此外,如@ r2evans所注意到的那样,您应该在shinyBS
文件的Imports
部分中添加DESCRIPTION
:
Imports: shinyBS
有关更多信息,请访问Hadley Wickam的R软件包网站:http://r-pkgs.had.co.nz/namespace.html#imports。