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