假設我有一個像下面的兩個數據幀:使用多個「by」合併/連接兩個數據幀?
df1 = data.frame(ssuid=c(916860000285, 916860000285, 916925451999, 404454000285, 404454000285),
epppnum=c(101,102,101,101,102),
esex=c("M","F","M","M","F"))
df2 = data.frame(ssuid=c(916860000285, 916860000285, 916925451999, 404454000285, 404454000285),
epppnum=c(101,102,101,101,102),
erace=c(1,1,2,1,1))
我想將它們合併,而是一個獨特的ID是ssuid和epppnum組合。我現在的解決方案是創建一個新變量,然後用它來合併。
library(dplyr)
df1 = df1 %>% mutate(uniqueID=paste(ssuid,epppnum,sep="/")) %>%
select(uniqueID, esex)
df2 = df2 %>% mutate(uniqueID=paste(ssuid,epppnum,sep="/"))%>%
select(uniqueID, erace)
df = left_join(df1,df2,by="uniqueID")
有沒有更好的方法?
謝謝!