R data.table:将向量转换为一行data.table

时间:2016-03-25 13:59:44

标签: r optimization data.table

我有一个字符向量x,我想以快速的方式将其变成一行data.table。命令data.table(x)返回一列data.table。现在,data.table(t(x))完成了工作,但我想知道是否有更快的方法。

1 个答案:

答案 0 :(得分:5)

我们可以使用

x <- 1:5
setDT(as.list(x))[]

基准

v1 <- 1:1e5
system.time(data.table(t(v1)))
#   user  system elapsed 
#  12.95    0.01   12.97 
system.time(setDT(as.list(v1)))
#  user  system elapsed 
#   5.75    0.00    5.75 

system.time(as.data.table(t(v1)))
#    user  system elapsed 
#   6.35    0.00    6.34 

更新

如果以上操作rbind带有data.table的向量,我们无需将vector转换为data.table

 d1 <- data.table(V1= 1:3, V2= 4:6, V3=7:9)
 rbindlist(list(d1, as.list(1:3)))