首页 > 解决方案 > left_join 在 R 的 by 参数中使用字符向量

问题描述

有什么方法可以在 R 中的 left_Join 的“by”参数中使用字符向量

我正在尝试以下操作:

DF <- data.frame(a = c("q","a","a","b","b","b","c","c","c","c"), b = c("w","e","r","t","y","u","i","i","w","f"))
DF2 <- data.frame(aa = c("q","a","b","c"), cc = c(1,2,3,4))
DFNames <- names(DF)

left_join(DF,DF2, by = c(DFNames[1] = "aa"))

但我明白了

错误:“left_join(DF,DF2, by = c(DFNames[1] ="

这个问题肯定源于c(DFNames[1] = "aa")

返回:

错误:“c(DFNames [1] =”中的意外'='

干杯!

标签: rdataframeleft-join

解决方案


我们可以很容易地做到这一点setNames

out1 <- left_join(DF,DF2, by = setNames("aa", DFNames[1]))

- 检查输出

out2 <- left_join(DF, DF2, by = c("a" = "aa"))
identical(out1, out2)
#[1] TRUE

推荐阅读