首页 > 解决方案 > 如何在R中循环lapply函数

问题描述

我有两个大清单,

  1. imputemodel 有 1000 个列表,每个列表有 11 个公式(每个特征 1 个) 在此处输入图像描述
  2. 训练 1000 个数据帧,每个数据帧 11 列 在此处输入图像描述

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

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

 ...

 list1000 = ...

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

标签: rfunctionsimulationlapplyrpart

解决方案


尝试使用Map

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

lapply您可以迭代索引和子集模型和数据。

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

推荐阅读