安装 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.0R 3.2.3 上 Windows。

更新: 感谢@MrFlick 的提示:

> ls(all.names=TRUE)
[1] ".N"           ".Random.seed"

所以它在全球环境中,但它是如何到达那里的,为什么它优先?

我在加载 data.table 时收到相同的消息。不知道我什么时候加载 .N 所以我进行了以下操作:

  1. 检查所有变量以查看我有什么:

    ls(all.names=TRUE)

  2. 删除所有变量:

    rm(list = ls(all.names=TRUE))