【发布时间】:2021-05-10 18:27:09
【问题描述】:
我有两个列表,我想使用 lapply 获取一个新列表
数据是
library(dplyr)
list.A <- list(df1=data.frame(x= c(1:5), y = letters[1:5], z= rep(1,5)),
df2=data.frame(x= c(10:15), y = letters[5:10], z= rep(10,6)))
list.B <- list(df1=data.frame(x= c(1:6), var2 = letters[10:15], var3= rep(7,6)),
df2=data.frame(x= c(10,12), var2 = letters[1:2], var3= rep(5,2)))
我希望结果如下
dat.1 <- left_join(list.A[[1]], list.B[[1]], by=("x"))
dat.2 <- left_join(list.A[[2]], list.B[[2]], by=("x"))
new.list <- list(df1 = dat.1, df2 =dat.2)
但是当我使用 lapply 时,结果很奇怪,而不是我希望的那样
new.list <- lapply(list.A, function(a){lapply(list.B, function(b){
df <-left_join(a, b, by=("x"))
})
})
任何帮助,请。我需要应用循环或 lapply 会工作吗? 我的实际列表有很多数据框
【问题讨论】:
-
只需使用
mapply(merge, list.A, list.B)(不需要 steenking dplyr。)