2017-12-03 1 views
-1

Ich bekomme einen Fehler, wenn ich versuche, zwei Datensätze unter Verwendung left_join mit drei "Schlüssel" Variablen zusammenzuführen. Hier ist ein reproduzierbares Beispiel:left_join gibt Fehler mit drei Schlüsselvariablen

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") 

Dies gibt die folgenden Fehler:

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

Ich weiß, dass join sein muss, um ein Problem mit den wichtigsten Variablen zu benennen, die für die Join verwendet werden, aber ich weiß nicht verstehen warum. Hier

ist, was ich möchte als ein Ergebnis haben:

# 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 

Lösung (Danke @ user127649)

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

Versuchen Sie: 'by = c (" var1 "," var2 "," var3 ")' – user127649

Antwort

0

ich dies tun würde:

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) 
Verwandte Themen