2017-04-08 44 views
0

比方說,我有兩個data.frames df1df2合併/組合和R中具有不同數目的行的匹配數據幀

> df1 
    Var1 Var2 
1 "A" "D" 
2 "B" "E" 
3 "C" "F" 

> df2 
    Var3 Var4 
1 "C" "H" 
2 "B" "I" 
3 "G" "J" 
4 "A" "K" 

我想與df2的方式,聯合收割機/合併df1在可能的情況下Var1Var3的值匹配,否則NA。重要的是我想保留Var1Var2的值之間的映射。在這個簡單的例子中,我最終會得到:

> df2 
    Var3 Var4 Var1 Var2 
1 "C" "H" "C" "F" 
2 "B" "I" "B" "E" 
3 "G" "J"  NA  NA 
4 "A" "K" "A" "D" 

任何想法一般的方式來實現這一點?在這個例子中,每個data.frame中的變量數目在現實中並不一定相等。乾杯! :)

回答

0

使用match

Indices <- match(df2$Var3, df1$Var1) 

df2$Var1<-df1$Var1[Indices] 
df2$Var2<-df1$Var2[Indices] 
+0

或者更簡單地說,'cbind(DF2,DF1 [匹配(DF2 $ VAR3,DF1 $ VAR1)])' – Sotos

相關問題