Как объединить два фрейма данных только с некоторыми совпадающими именами столбцов и некоторыми совпадающими значениями в этом столбце? - PullRequest
1 голос
/ 19 июня 2019

У меня есть два фрейма данных, которые я пытаюсь объединить. В каждом фрейме данных есть два столбца с соответствующими заголовками, скажем, «Штат» и «Город».

У df1 есть только определенное количество комбинаций штатов и городов, тогда как у df2 есть все.

Я хочу взять Pov2009 и Pov2010 из df2 и добавить эти два столбца в df1 с соответствующими им Штатом / Городом в соответствии с Штатом / Городом в df1. Я также хочу, чтобы все штаты и города, перечисленные в df2, которые не встречаются в df1, исчезли.

Результатом будет 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 Ответ

2 голосов
/ 19 июня 2019

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...