考虑一个data.table
DT
,如下所示。
DT <- iris
setDT(DT)
ad <- address(DT)
DT[, a := NA_integer_]
identical(address(DT), ad)
我正在尝试使用循环在 DT$a
中按顺序插入一些信息。
a1 <- sample(1:1000, 50)
a2 <- sample(1:1000, 50)
a3 <- sample(1:1000, 50)
正如您所看到的,这会导致为以下方法复制DT
。
DT$a[1:50] <- a1
identical(address(DT), ad)
如何使用data.table
来避免复制DT
?
最佳答案
for (i in 1:3) DT[1:(50*i), a := sample(1:1000, 50)]
或者哪个更有意义:
DT[ , a := sample(1:1000, 150)]
关于r - R中的data.table就地修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967873/