我知道当我data.table
逐行构建时,最好预先分配空间:
library(data.table)
dt <- data.table(x=rep(0,1000), y=rep(0,1000))
for(i in 1L:1000L) {
set(dt, i, 1L, runif(1))
set(dt, i, 2L, rnorm(1))
}
(事实上,如果我不预先分配,我会得到该代码的分段错误。)
如果我事先不知道行数,那么我需要动态增长,可能使用指数分配什么的。我是否需要自己管理该过程,或者是否有任何现有的支持来data.table
实现动态增长?
另外,当我完成附加行时,我可能会剩下一些分配的空间,是否有truncate()
方法或类似的方法?还是我应该这样做dt <- dt[1:n,]
?