我对R来说比较新,并且想知道迭代构造数据帧的最有效方法(一次一行,迭代次数"n"和每行"l"的长度事先已知).
我有一个大小为30000 x 50的数据帧数据.我还有一个单独的列表,其中包含来自此数据帧的行分组,例如,
rows <- list(c("34", "36", "39"), c("45", "46"))
Run Code Online (Sandbox Code Playgroud)
这表示具有rownames(不是数字行indeces,但是字符rownames(dat))"34","36","39"的数据帧行构成一个分组,而"45","46"构成另一个分组.
现在我想将数据框中的分组拉出到并行列表中,但我的代码(下面)非常非常慢.我怎样才能加快速度?
> system.time(lapply(rows, function(r) {dat[r, ]}))
user system elapsed
246.09 0.01 247.23
Run Code Online (Sandbox Code Playgroud)
这是在一台非常快的计算机上,R 2.14.1 x64.