5

我知道当我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,]

4

0 回答 0