如何合并两个仅具有某些匹配的列名称和该列中的某些匹配值的数据框?

时间:2019-06-19 10:33:50

标签: r

我有两个要合并的数据框。每个数据框内都有两列具有匹配标题的列,例如“州”和“城市”。

df1仅具有选定数量的State和City组合,而df2具有所有组合。

我想从df2中获取Pov2009和Pov2010,并将这两列添加到df1中,它们对应的州/市与df1中的州/市匹配。我还希望df2中没有出现的所有df2中列出的州和城市消失。

结果将为df3。

df1
State     City     Votes2007    
CA        SF       17000        
CA        Fresno   16500
NY        Ithaca   12100
ID        Boise    17200

df2
State    City      Pov2009  Pov2010
CA       SF        .1       .15
OR       Bend      .05      .05
NY       Ithaca    .02      .04
NY       Montauk   .03      .02
CA       Fresno    .15      .12
ID       Boise     .04      .04

df3
State     City     Votes2007    Pov2009  Pov2010
CA        SF       17000        .1       .15  
CA        Fresno   16500        .15      .12
NY        Ithaca   12100        .02      .04
ID        Boise    17200        .04      .04

我已经尝试过merge(),dplyrs inner_join()以及通过此站点发现的许多其他功能,但是似乎没有一个问题正是我要寻找的。

1 个答案:

答案 0 :(得分:2)

innerjoin同时使用两列

df3 <- merge(df1, df2, by= c("State", "City"))

   State   City Votes2007 Pov2009 Pov2010
1:    CA     SF     17000    0.10    0.15
2:    CA Fresno     16500    0.15    0.12
3:    NY Ithaca     12100    0.02    0.04
4:    ID  Boise     17200    0.04    0.04