自最新的R更新以来,我得到了注释
CRAN检查中的summary.xmlImport:“中位数”没有可见的全局函数定义
。附加说明参考了read.table
,write.table
和其他标准函数。
当我查看我的文件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
等。这个注释只是关于{{1 }}功能。
任何人都知道Note的原因是什么以及如何修复它?我注意到有大量的R包当前具有相同的注释。
我可以在非声明变量的上下文中理解这个警告,但我认为median
,median()
这些函数在R中是全局可见的,尤其是read.table()
似乎是!?
mean()
答案 0 :(得分:53)
从Monday June 29, 2015开始,必须在NAMESPACE中显式导出所有非基础函数才能传递R CMD check --as-cran
。之所以进行更改,是因为现在仅使用 base 附件检查代码,因此必须明确列出默认包中的函数(例如 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"