Come unire 2 tabelle utilizzando * _join() da dplyr, quando i nomi delle variabili di join sono diversi e memorizzati in un'altra variabile?R: valutazione standard per * _join (dplyr)
ad es.
df1 = data_frame(x1 = 1:10,y1 = 21:30)
df2 = data_frame(x2 = 6:15,y2 = 26:35)
df3 = data_frame(x1 = 6:15,y2 = 26:35)
var1 = "x1"
var2 = "x2"
df1 %>% left_join(df3,by=c(var1)) # #1 works
ma questo dà l'errore -
df1 %>% left_join(df2,by=c(var1 = var2)) # #2 doesn't work
Error: cannot join on columns 'x2' x 'var1': index out of bounds
sorprendentemente, questo funziona -
df1 %>% left_join(df2,by=c("x1" = var2)) # #3 works
Si prega di non utilizzare il 'nome <-' nastiness -' setNames() 'è molto meglio – hadley
Ho modificato la mia risposta per riflettere questo. –