我有2个列表,每个列表包含5个数据框,它们按特定顺序排列;
list_1<-list("A","B","C","D")
list_2 <-list(("Aa","Bb","Cc","Dd")
我需要left_join A到Aa,B到Bb等等,因此我不知道减少不是一个选项。非常感谢任何帮助。
我虽然使用了lapply,但我失败了。
答案 0 :(得分:2)
当我们以相应的顺序加入数据集时,最好使用Map
。假设我们将对象名称作为字符串存储在另一个对象('list_1'或'list_2')中,最好将其作为vector
而不是list
,然后执行mget
获取对象的值
Map(function(x, y) merge(x, y, all.x = TRUE), mget(list_1), mget(list_2))
或使用tidyverse
library(tidyverse)
map2(mget(list_1), mget(list_2), left_join)
list_1<- c("A","B","C","D")
list_2 <- c("Aa","Bb","Cc","Dd")