我创建了一个供个人使用的包,它有一些依赖关系:
Depends: R (>= 3.2.3), data.table (>= 1.9.6), bit64 (>= 0.9.5),
ggplot2 (>= 2.0.0), yaml (>= 2.1.13)
当我通过devtools::install()
安装此软件包时,它完成且没有错误。
当我通过library(somePackage)
在新会话中加载包时
我收到了一个神秘的信息:
附加包:'data.table'
以下对象被通过'.GlobalEnv'屏蔽:
.N
全局环境中没有对象 - 我尝试ls()
,它返回一个空字符串,清除工作区[扫帚图标]等。但是:
> .N
[1] 100419
这对我没有意义 - 我知道data.table中的.N
是什么,但不知道100419来自哪里。如何判断搜索路径中的哪个环境真正发生?
> search()
[1] ".GlobalEnv" "package:somePackage" "package:devtools" "package:yaml"
[5] "package:ggplot2" "package:bit64" "package:bit" "package:data.table"
[9] "tools:rstudio" "package:stats" "package:graphics" "package:grDevices"
[13] "package:utils" "package:datasets" "package:methods" "Autoloads"
[17] "package:base"
我相信依赖项是原因的一部分,因为当我从DESCRIPTION文件中删除这一行时,我没有这个问题。
在devtools
for Windows上运行1.10.0
R 3.2.3
。
更新:感谢来自@MrFlick的提示:
> ls(all.names=TRUE)
[1] ".N" ".Random.seed"
所以它是在全球环境中,但它是如何实现的,为什么它优先?
答案 0 :(得分:1)
我在加载data.table
时收到了相同的消息。不知道我什么时候加载.N
所以我选择了以下内容:
检查所有变量以查看我的内容:
ls(all.names=TRUE)
删除所有可变项:
rm(list = ls(all.names=TRUE))