我相信我的循环中有一个范围问题...我确定这是一个简单的错误......但我不确定如何修复。我试图循环一些数据,并使用dplyr的inner_join连接数据帧。但是,我似乎无法在by参数中获取变量名称。这是我想要做的测试案例:
test_inner <- function() {
df1 <- data.frame(id=c(1,2), val=c("a", "b"), stringsAsFactors=F)
df2 <- data.frame(id=c(1,2),val=c("c", "d"), stringsAsFactors=F)
df3 <- data.frame(id=c(1,2),val=c("e", "f"), stringsAsFactors=F)
l2 <- list(df2=df2, df3=df3)
q1 <- list(df1=df1, df2=l2)
q2 <- list(df1=df1, df2=l2)
l1=list(q1,q2)
vars = c("df2", "df3")
llply(l1, function(x) {
llply(vars, function(y) {
m <- inner_join(x$df1, x$df2[y], by="id", copy=T)
})
})
}
我希望能够加入df1和df2并创建一个新合并的数据框,但它失败并出现以下错误:
Error: cannot join on columns 'id' x 'id': index out of bounds
我做错了什么?