我正在尝试使用用户从闪亮的应用程序的数据表中选择的两列来连接两个数据框
我想使用我在变量中添加的列名称来加入它们。但是,当我进行左联接时,会出现错误。当我使用名称字符时,效果很好。
我的代码
EndoDate<-colnames(RV$data[as.numeric(input$endotable_columns_selected[1])])
EndoNum<-colnames(RV$data[as.numeric(input$endotable_columns_selected[2])])
PathDate<-colnames(RV2$data[as.numeric(input$endotable_columns_selected[1])])
PathNum<-colnames(RV2$data[as.numeric(input$endotable_columns_selected[2])])
这不起作用:
left_join(RV$data,RV2$data,by = c(EndoDate=PathDate,EndoNum=PathNum))
..但这确实有效
left_join(RV$data,RV2$data,by = c("endo_resultperformed"="endo_resultperformed","hospitalnumber"="hospitalnumber"))
我需要使用用户选择的列名。我该怎么做并加入?这是dplyr符号的问题吗?
答案 0 :(得分:1)
我们可以使用setNames
library(dplyr)
band_members$id <- 1:3
band_instruments$id_num <- c(2,3,1)
xid='id'
xid1='name'
yid='id_num'
yid1='plays'
band_members %>% left_join(band_instruments, by=setNames(nm=c(xid,xid1),c(yid,yid1)))
# A tibble: 3 x 4
name band id plays
<chr> <chr> <dbl> <chr>
1 Mick Stones 1 NA
2 John Beatles 2 guitar
3 Paul Beatles 3 bass
PS:此答案基于@MrFlick答案here