【问题标题】:attr(*, "internal.selfref")=<externalptr> appearing in data.table Rstudioattr(*, "internal.selfref")=<externalptr> 出现在 data.table Rstudio
【发布时间】:2015-10-20 15:56:58
【问题描述】:

我是 R data.table 包的新用户,我注意到我的 data.tables 中有一些不寻常的东西,我没有在文档或本网站的其他地方找到解释。

在 Rstudio 中使用 data.table package 并在“环境”面板中查看特定的 data.table 时,我看到以下字符串出现在 data.table 的末尾

attr(*,"internal.selref")=

如果我在控制台中打印相同的 data.table,则不会出现此字符串。

这是一个错误,还是只是 data.table(或 Rstudio)的固有特性?我是否应该担心这是否会影响下游流程处理这些数据的方式?

我运行的版本如下:
数据表版本 1.9.6 工作室版本 0.99.447 OSX 10.10.5

如果这只是我一个无知的新手,请提前道歉。

【问题讨论】:

  • 别担心。但是,data.table 是为巨大的数据集设计的,View 它们没有意义,所以你应该改掉这个习惯。
  • @Roland 在不知道发生了什么的情况下无法处理数据集。我通常使用View(DT[sample(.N, 1000)]) 之类的东西,它适用于任何数据大小都非常快。
  • 是的,我经常使用View(当然是在原版 R 中)。除了处理大数据之外,data.table 还适用于快速分组操作和清晰的语法。
  • @DavidArenburg 这显然比单击 RStudio 环境窗格中的 data.table 更明智。我见过有人这样做,结果导致他们的 R 实例挂起并崩溃。
  • RStudio 在该窗格中显示对象的属性。试试attr(dt, "hello") &lt;- 1 再看看。您将显示两个属性。正如罗兰所说,没什么大不了的。

标签: r data.table rstudio


【解决方案1】:

实际上,我不久前曾问过 data.table 包的主要作者 Matt Dowle 这个问题。

这是一个错误,还是只是 data.table(或 Rstudio)的固有特性?

显然这个属性是由data.table内部使用的,这不是RStudio的一个bug,实际上RStudio正在做它的工作来显示对象的属性。

我是否应该担心这是否会影响下游流程处理这些数据的方式?

不,这不会影响任何事情。

【讨论】:

    【解决方案2】:

    对于那些好奇为什么要创建这个属性的人,我相信它在 setkey() 部分下的data.table manual 中有解释:

    在 v1.7.8 中,不推荐使用 key

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多