在R中用lappy替换嵌套循环

在R中用lappy替换嵌套循环,r,function,loops,nested-loops,lapply,R,Function,Loops,Nested Loops,Lapply,我以前问过一个问题:()。为了将函数应用于listCcols中的所有数据帧,我定义了一个由两个嵌套循环组成的函数,然后将其馈送到lappy,如下所示: 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])

我以前问过一个问题:()。为了将函数应用于list
Ccols
中的所有数据帧,我定义了一个由两个嵌套循环组成的函数,然后将其馈送到
lappy
,如下所示:

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]]))

Power\u fI认为这是可以做到的,但您必须给出一个示例输入数据集和函数的示例输出。我之所以这样说,是因为当我使用嵌套的lappy和我的(随机)data.frames列表时,我得到了一个错误。Hi Lampros,我已经能够做到这一点(仍然需要很长时间,但要少得多),并将尽快将我的解决方案添加到此线程中。它涉及到在一个函数中连续定义每个lappy。您能否将您的解决方案作为答案发布,以便可能帮助其他面临相同问题的人。@lampros我亲爱的朋友,我已经给出了创建示例数据的代码,请参考上述内容。我已经评论过了,请参考。@El_1988我们还有其他选择吗。我在某个地方读到,如果我们使用名为parallel的库,那么这样的lappy将有效地工作。我将分享屏幕截图。我正在进行优化,如果你得到任何解决方案,请与我分享。谢谢