自从最新的 R 更新以来,我得到了 Note
summary.xmlImport: no visible global function definition for ‘median’
在 CRAN 检查中。更多注意事项请参阅
read.table
, write.table
以及 R 中的其他标准函数。当我查看我的文件 summary.xmlImport 时,该文件如下所示:
summary.xmlImport <- function(object, ...){
rowCount <- sapply(object,nrow)
cat("Summary of xmlImport object\n")
cat("---------------------------\n")
cat("Sequences :",length(object),"\n")
cat("Min hits :",min(rowCount),"\n")
cat("Average hits :",mean(rowCount),"\n")
cat("Median hits :",median(rowCount),"\n")
cat("Max hits :",max(rowCount),"\n")
invisible(object)
}
我不明白,为什么我现在要添加
median
函数到 NAMESPACE,但为什么不是 min
, mean
等。该注释仅关于 median
功能。任何人都知道 Note 的原因是什么以及如何解决它?我注意到目前有大量 R 包具有相同的 Note。
我可以在未声明变量的上下文中理解此警告,但我认为
median()
, read.table()
并且这些函数在 R 中是全局可见的,尤其是 mean()
似乎是!?编辑:我只收到关于 CRAN 的注释,但没有在我的本地计算机上收到什么使得搜索解决方案有点讨厌......我的计算机的 session 信息:
> sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS
最佳答案
截至 Monday June 29, 2015 , 所有非 底座 函数必须在 NAMESPACE 中显式导出才能通过 R CMD check --as-cran
.发生变化是因为现在仅使用 检查代码。底座 附加包,因此必须明确列出默认包中的函数(例如 stats )。
要导入这些包,请考虑执行以下操作:
Imports
中列出它们.几乎没有理由在 Depends
中列出软件包. import(stats)
或 importFrom(stats, ...)
,其中 ...
是一个或多个逗号分隔的函数名。 (如果您使用 roxygen2::roxygenize()
或 devtools::document()
来生成文档和 NAMESPACE,类似的标记将是 #' @import stats
和 #' @importFrom stats ...
。) 如果您想以模仿此方式的模式与 R 交互工作,您将需要仅附加基本包来启动 R。 There are several ways to do this ,但可能最简单的方法是在您的 shell 中设置一个环境变量:
R_DEFAULT_PACKAGES=NULL
或者在 .Renviron 文件中,然后使用 R --vanilla
启动 R .在终端或 bash 中,这将是:$ export R_DEFAULT_PACKAGES=NULL
$ R --quiet --vanilla
> search()
[1] ".GlobalEnv" "Autoloads" "package:base"
在 Windows 命令提示符下,它将是:
C:\>SET R_DEFAULT_PACKAGES=NULL
C:\>R --quiet --vanilla
> search()
[1] ".GlobalEnv" "Autoloads" "package:base"
关于r - ‘median’ 没有可见的全局函数定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132552/