【发布时间】:2013-05-15 04:32:06
【问题描述】:
如果我有一个数据框
set.seed(12345)
df=data.frame(a=rnorm(5),b=rnorm(5))
我可以通过例如添加一行
df[6,] =c(5,6)
如果我现在在 data.table 中做同样的事情
library(data.table)
dt=data.table(df)
dt[6,]=c(5,6)
它失败并出现错误。将行插入 data.table 的正确方法是什么?
【问题讨论】:
-
我认为这个包计划了一个
insert()函数,以使其添加行相对较快,但到目前为止,您必须预先分配数据表的nrow。也许是这样:r-forge.r-project.org/tracker/… -
rbind(dt,list(5,6))足以满足您的需要吗? -
顺便说一句,每次我认为我需要逐行添加数据时,我在想 C 风格而不是 R 风格 - 所以除了上述 cmets 你应该重新考虑你是否真的需要这样做
-
我认为这几乎是同一个问题......? stackoverflow.com/questions/16792001/…
-
@Roland:使用data.table的大部分原因是内存效率,由于不复制表。 Rbind 确实创建副本,并且可以成为大数据的巨大内存猪...
标签: r data.table