转置data.table

时间:2013-12-18 22:45:36

标签: r data.table

在数据计算结束后有效转换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

1 个答案:

答案 0 :(得分:0)

这是一个很老的问题,从那时起<function __main__._create_multiInput_fcn.<locals>.f(x,y)> 就添加/导出了data.table用于转置列表。在性能方面,除矩阵外,它的表现优于transpose(我认为这是可以预期的)

t