left_join给出了三个关键变量的错误

时间:2017-12-03 20:41:45

标签: r dplyr

当我尝试使用left_join和三个“关键”变量合并两个数据集时,我收到错误。这是一个可重复的例子:

df1 <- tribble(
~var1, ~var2, ~var3, ~var4,
1, 1, 1, 4,
2, 2, 2, 5,
3, 3, 3, 6
)

df2 <- tribble(
~var1, ~var2, ~var3, ~var5,
1, 1, 1, 7,
2, 2, 2, 8,
3, 3, 3, 9
)

df3<- df1 %>% 
      left_join(df2, by = "var1", "var2", "var3")

这会出现以下错误:

Error: `suffix` must be a character vector of length 2, not string of length 
1

我知道join必须在命名用于连接的关键变量时遇到问题,但我不明白为什么。

以下是我希望得到的结果:

# A tibble: 3 x 5
   var1  var2  var3  var4  var5
  <dbl> <dbl> <dbl> <dbl> <dbl>
1     1     1     1     4     7
2     2     2     2     5     8
3     3     3     3     6     9

解决方案(感谢@ user127649)

df3<- df1 %>% 
      left_join(df2, by = c("var1", "var2", "var3"))

1 个答案:

答案 0 :(得分:0)

我会这样做:

df1 <- tribble(
    ~var1, ~var2, ~var3, ~var4,
    1, 1, 1, 4,
    2, 2, 2, 5,
    3, 3, 3, 6
)

df2 <- tribble(
    ~var1, ~var2, ~var3, ~var5,
    1, 1, 1, 7,
    2, 2, 2, 8,
    3, 3, 3, 9
)

df3 <- merge(df1, df2, all.x = TRUE)