我一直在查看教程和文档,但还没有找出如何将一个值向量分配给
我从一个空的
我该如何将vec的值分配给
data.table
中的一个已存在的行的所有列。我从一个空的
data.table
开始,它已经有了正确数量的列和行:dt <- data.table(matrix(nrow=10, ncol=5))
现在我对data.table
之外的一行计算一些值,并将它们放入一个向量vec
中,例如:
vec <- rnorm(5)
我该如何将vec的值分配给
data.table
的第一行,同时实现良好的性能(因为我还想逐步填充其他行)?
data.table
(如下面一个答案的评论中所述),我认为一遍又一遍地添加(许多)行根本不高效,因为data.table
(像data.frame
一样)是列存储,而不是行存储(这意味着每当您添加一行时,必须访问内存中的不同位置)。需要添加行的原因(算法)是什么? - R Yodadata.table
更快,因为你预先分配所需的内存(表大小),并通过引用覆盖行(如果您使用 Richard 的答案和:=
运算符)来修改行,因此该解决方案不会因为您修改一个值而复制整个数据。我可以编辑您的问题以澄清确切的用例吗? - R Yoda