【发布时间】:2015-03-23 10:21:09
【问题描述】:
当连接变量名称不同并存储在另一个变量中时,如何使用 dplyr 中的 *_join() 连接 2 个表?
例如
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
但这会出错 -
df1 %>% left_join(df2,by=c(var1 = var2)) # #2 doesn't work
Error: cannot join on columns 'x2' x 'var1': index out of bounds
令人惊讶的是,这行得通 -
df1 %>% left_join(df2,by=c("x1" = var2)) # #3 works
【问题讨论】: