dal*_*onb 12 r s-plus dataframe
我对R来说比较新,并且想知道迭代构造数据帧的最有效方法(一次一行,迭代次数"n"和每行"l"的长度事先已知).
Jos*_*ich 16
预分配!
matrix如果数据都是相同类型,则使用a .它会比a快得多data.frame.
例如:
> n <- 1000      # Number of rows
> row <- 1:20*1  # one row
> 
> # Adding row, one-by-one
> Data <- data.frame()
> system.time(for(i in 1:n) Data <- rbind(Data,row))
   user  system elapsed 
   2.18    0.00    2.18 
> 
> # Pre-allocated data.frame
> Data <- as.data.frame(Data)
> system.time(for(i in 1:n) Data[i,] <- row)
   user  system elapsed 
   0.94    0.00    0.93
>
> # Pre-allocated matrix (fast!)
> Data <- as.matrix(Data)
> system.time({ for(i in 1:n) Data[i,] <- row; Data <- as.data.frame(Data) })
   user  system elapsed 
      0       0       0 
| 归档时间: | 
 | 
| 查看次数: | 8234 次 | 
| 最近记录: |