【发布时间】:2013-05-17 13:02:26
【问题描述】:
每次我在data.table 上运行命令fix(DT) 时,关闭修复窗口后,DT 就会变成data.frame 对象。这正常吗?
library(data.table)
DT <- data.table(a = 1:2, b = 2:3)
> class(DT)
[1] "data.table" "data.frame"
fix(DT)
# close the window
> class(DT)
[1] "data.frame"
编辑:
一些会话信息:
R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
【问题讨论】:
-
我觉得是正常的。
fix和edit是应用于数据帧而不是数据表的函数。因此,他们将获取 DT 的副本,对其进行修改,将其作为数据框返回,并用它替换原始 DT。 -
...
edit没有 data.table 方法。因此,由于 data.table 也是 data.frame,因此使用了edit.data.frame。无论如何,使用fix处理 data.table 是没有意义的。通常,data.set 太大了。 -
如果你不担心效率,你可以编写一个
edit.data.table包装utils:::edit.data.frame的方法 ... -
好的,谢谢!我对此很满意。你们中的一些人可以重写他的评论作为答案吗?
-
@Roland 我知道。但是
fix当您单击与工作区选项卡中的 data.frame 不同的任何内容时,它会被 RStudio 调用。在将其提交给 RStudio 维护人员之前,我想确保纯R中的底层进程(fix、edit)是正确的。
标签: r dataframe data.table