根据 v2.14 的 R 新闻:
All packages must have a namespace, and one is created on installation if not supplied in the sources. This means that any package without a namespace must be re-installed under this version of R (but data-only packages without R code can still be used).
如何以编程方式检测 2.13.x 下安装的哪些软件包没有命名空间,以便我知道需要更新什么?
最佳答案
函数packageHasNamespace
掌握着 key 。与 installed.packages
一起使用:
以下代码循环遍历 .libPaths
中的所有库位置:
pkgNS <- NULL
for(i in seq_along(.libPaths())){
libLoc <- .libPaths()[i]
pkgs <- installed.packages(lib.loc=libLoc)[, 1]
pkgNS <- c(pkgNS,
sapply(unname(pkgs), packageHasNamespace, package.lib=libLoc)
)
}
这段代码的结果是一个命名的逻辑向量
pkgNS
如果包有命名空间,则为 TRUE,否则为 FALSE。要仅获取那些没有命名空间的包,请创建
pkgNS
的子集在哪里 pkgNS
是假的:pkgNS[!pkgNS]
abind bitops CircStats combinat corpcor deldir
FALSE FALSE FALSE FALSE FALSE FALSE
Design evd financial fpc getopt gsubfn
FALSE FALSE FALSE FALSE FALSE FALSE
ineq magic mlbench optparse plotrix ppcor
FALSE FALSE FALSE FALSE FALSE FALSE
关于R 2.14 - 检测没有命名空间的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998438/