首页 > 解决方案 > 使用 purrr 在两个输入列表上运行函数

问题描述

我有一个listL1和一个data.frameD2。L1包含两个不同学习项目的学生数据框架 [[1]] 和 [[2]]

因此,L1是按学习计划(建筑与工程)划分的学生列表。D2data.frame他们可以选择的项目之一。

我有一个函数,它接受两个输入(L1[[1]] 和 D2)并返回一个 data.frame 但我如何将整个列表L1和 data.frame D2传递给函数并让它在 L1[ [1]] + D2 然后 L1[[2]] + D2。

D2<-data.frame(programme=c("Architecture","Architecture","Engineering", "Engineering"), project=c(14,15,19,20))

L1<-data.frame(studentID=c(203,204,205), programme=c("Architecture","Engineering", "Engineering")) %>% group_by(programme) %>% group_split()


F=function(L1,D2){ L1 %>% left_join(D2)}

我可以做一个 for 循环或者F(L1[[1]],D2)andF(L2[[2]],D2)但是 Map(L1,as.list(D2),F) 似乎并没有像我预期的那样处理它。

我正在看,purrr::lmap但这只需要一个列表。有没有人见过将混合输入带入函数并迭代每个列表而不是向量的东西?

标签: rdplyrlapplypurrrmapply

解决方案


推荐阅读