在数据计算结束后有效转换data.table的好方法
nrow=500e3
ncol=2000
m <- matrix(rnorm(nrow*ncol),nrow=nrow)
colnames(m) <- c('foo',seq(ncol-1))
dt <- data.table(m)
df <- as.data.frame(m)
dt <- t(dt) #take a long time and converts the data table to a matrix
计算时间
1. to transpose the matrix
system.time(mt <- t(m))
user system elapsed
20.005 0.016 20.024
2. to transpose the dt
system.time(dt <- t(dt))
user system elapsed
32.722 15.129 47.855
3. to transpose a df
system.time(df <- t(df))
user system elapsed
32.414 15.357 47.775
答案 0 :(得分:0)
这是一个很老的问题,从那时起<function __main__._create_multiInput_fcn.<locals>.f(x,y)>
就添加/导出了data.table
用于转置列表。在性能方面,除矩阵外,它的表现优于transpose
(我认为这是可以预期的)
t