【发布时间】:2015-03-17 13:50:21
【问题描述】:
我正在尝试检查我自己的包裹
Rcmd.exe check dbt.ORA_1.0.tar.gz.
尽管在描述文件中添加了“Depends: shiny,
我收到很多这样的警告:
...
- dbtORA: 'runApp' 没有可见的全局函数定义
- dbtORA: 'fluidPage' 没有可见的全局函数定义
- dbtORA: 'titlePanel' 没有可见的全局函数定义
- dbtORA: 'sidebarLayout' 没有可见的全局函数定义
- dbtORA: 'sidebarPanel' 没有可见的全局函数定义
- dbtORA: 'selectInput' 没有可见的全局函数定义
- dbtORA: 'checkboxInput' 没有可见的全局函数定义
- dbtORA: 'conditionalPanel' 没有可见的全局函数定义
- dbtORA: 'numericInput' 没有可见的全局函数定义
- dbtORA: 'actionButton' 没有可见的全局函数定义
- dbtORA: 'mainPanel' 没有可见的全局函数定义
- dbtORA: 'textOutput' 没有可见的全局函数定义
- dbtORA:“uiOutput”没有可见的全局函数定义
...
函数dbtORA很长,源码是这样的:
dbtORA <-function(){
...
outputApp=runApp(list(
ui = fluidPage(
...
),
server = function(input, output, session){
...
}
))
...
return(outputApp=NamedORAResults)}
在这种情况下我还有第二个问题:
如何声明仅在本地定义的函数,例如在
dbtORA <-function(){
...
matlabmin=function(...){...}
...}
给出警告:
- dbtORA:“matlabmin”没有可见的全局函数定义
【问题讨论】:
-
有几个修复取决于是否有一种方法可以绑定您正在使用的包中的变量。通用的解决方法是在调用变量之前将
dbtORA <- NULL放在脚本的顶部。问题是您可能有某种函数可能正在从 data.frame 或列表中读取变量并使用non standard evaluation -
dbtORA 是一个非变量函数,它使用了很多其他函数并且能够启动一个闪亮的界面。我不明白你的建议
-
您是否在 NAMESPACE imprts 中声明了您正在使用的包函数?解决方案取决于您是手动管理还是使用
devtools之类的方式管理。 -
您能详细说明一下吗?我将 Rstudio 与 Rtools 一起使用,所有检查都是自动完成的。
-
你使用roxygen2吗?如果不是,我强烈推荐它(+ devtools ;它内置在很多 RStudio 中)。以下是关于 NAMESPACES 的更多信息:cran.r-project.org/doc/manuals/r-release/…,但 roxygen 会让这种管理变得更容易。