安装 R 包后全局环境中的神秘 .N 对象
mysterious .N object in global environment after installing R package
我创建了一个供个人使用的包,它有一些依赖项:
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)
在新会话中加载包时
我收到神秘消息:
Attaching package: ‘data.table’
The following object is masked by ‘.GlobalEnv’:
.N
全局环境中没有对象 -- 我尝试 ls()
,其中 returns 一个空字符串,清除工作区 [扫帚图标],等等。但是:
> .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
1.10.0
在 R 3.2.3
上 Windows。
更新: 感谢@MrFlick 的提示:
> ls(all.names=TRUE)
[1] ".N" ".Random.seed"
所以它在全球环境中,但它是如何到达那里的,为什么它优先?
我在加载 data.table
时收到相同的消息。不知道我什么时候加载 .N
所以我进行了以下操作:
检查所有变量以查看我有什么:
ls(all.names=TRUE)
删除所有变量:
rm(list = ls(all.names=TRUE))
我创建了一个供个人使用的包,它有一些依赖项:
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)
在新会话中加载包时
我收到神秘消息:
Attaching package: ‘data.table’
The following object is masked by ‘.GlobalEnv’:
.N
全局环境中没有对象 -- 我尝试 ls()
,其中 returns 一个空字符串,清除工作区 [扫帚图标],等等。但是:
> .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
1.10.0
在 R 3.2.3
上 Windows。
更新: 感谢@MrFlick 的提示:
> ls(all.names=TRUE)
[1] ".N" ".Random.seed"
所以它在全球环境中,但它是如何到达那里的,为什么它优先?
我在加载 data.table
时收到相同的消息。不知道我什么时候加载 .N
所以我进行了以下操作:
检查所有变量以查看我有什么:
ls(all.names=TRUE)
删除所有变量:
rm(list = ls(all.names=TRUE))