将变量列表转换为data.table对象

时间:2014-04-28 15:48:30

标签: r data.table

是否有更优雅的方法将变量列表转换为data.table对象?

这不会产生预期的结果。

require(data.table)
set.seed(1)
Var.List <- list(a=sample(letters, 10, rep=T),b=rnorm(10), c=rnorm(10))
data.table(Var.List)

以下确实给出了所需的结果,但是对于大列表/表格来说速度很慢。有没有更好的办法?在汇总来自foreach包的结果时,我经常遇到这个问题。

data.table(as.data.frame(Var.List))

    a          b           c
 1: g -0.8204684 -0.04493361
 2: j  0.4874291 -0.01619026
 3: o  0.7383247  0.94383621
 4: x  0.5757814  0.82122120
 5: f -0.3053884  0.59390132
 6: x  1.5117812  0.91897737
 7: y  0.3898432  0.78213630
 8: r -0.6212406  0.07456498
 9: q -2.2146999 -1.98935170
10: b  1.1249309  0.61982575

1 个答案:

答案 0 :(得分:5)

修改:最佳解决方案(ht Arun)只需执行as.data.table(Var.List),即可调用as.data.table()现成的"list"方法。


就像data.frame()一样,data.table()会接受data.frame,矩阵,任意数量的向量作为输入,通过其{{1}处理它们参数。

利用后一种选择,您可以使用...从此类向量的列表构建do.call()

data.table