当我尝试使用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"))
答案 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)