如何在R中循环执行lapply功能

问题描述

我有两个大名单,

  1. imputemodel,具有1000个列表,每个列表包含11个公式(每个功能1个)

    enter image description here

  2. 训练1000个数据帧,每个11列

    enter image description here

我想使用imputemodel中每个列表的公式在每个数据帧上应用rpart函数。如何循环执行1000次而不必像下面这样写每一行?

 list1=list(lapply(imputemodel[[1]],rpart,data=train[[1]]))
 list2=list(lapply(imputemodel[[2]],data=train[[2]]))
 list3=list(lapply(imputemodel[[3]],data=train[[3]]))

 ...

 list1000 = ...

 combined list <- c(list1,list2,list3,....,list1000)

解决方法

尝试使用Map

combined_list <- Map(rpart,imputemodel,data = train)

使用lapply,您可以遍历索引,子集模型和数据。

combined_list <- lapply(seq_along(imputemodel),function(i) 
                        rpart(imputemodel[[i]],train[[i]]))