用R中的lapply替换嵌套循环

时间:2017-10-11 16:06:16

标签: r function loops nested-loops lapply

我之前问了一个问题:(Calculate Means and Covariances for large list of dataframes, replacing loops with lapply)。要将函数应用于列表Ccols中的所有数据帧,我定义了一个由两个嵌套循环组成的函数,然后将其提供给lapply,如下所示:

Power_f<- function(X){

list1<- list()
for (index in 2:ncol(X)){

     list2<-list()
     for (i in 1:length(X[,index]) ){
          Data<- get(X[i,index])
          list2[[i]] <-Data
     }

Data2<- transform(Reduce(merge, lapply(list2, function(x) data.frame(x, rn = row.names(x)))), row.names=rn, rn=NULL)
list1[[index]]<- (Data2)
}
return(list1)
}

lapply(seq(from=2,to=(length(Ccols))), function(i) Power_f(Ccols[[i]]))

但是守则仍然需要很长时间才能运行。无论如何用for替换所有lapply循环?我已经检查了类似的问题,但所有解决方案都是特定于案例的并且不知所措。

0 个答案:

没有答案