Объединить два кадра данных двумя одинаковыми переменными - PullRequest
1 голос
/ 29 января 2020

У меня есть два кадра данных (df1 и df2), и я хочу объединить их в один df со столбцами «GEO», «POP», «Value», «Mean», не соответствующие строки должны быть назначены с помощью «NA»

> df1
        GEO    Value            POP
1         Belgium   986494    Adolescents
2         Denmark   542496    Adolescents
3         Finland   472801    Adolescents
4          France  6568728    Adolescents
5        Germany   6177477    Adolescents
6           Italy  4564035    Adolescents
7     Netherlands  1608971    Adolescents
8           Spain  3550102    Adolescents
9  United Kingdom  5815087    Adolescents
10        Belgium  6910856         Adults
11        Denmark  3423077         Adults
12        Finland  3318043         Adults
13         France 39536853         Adults
14       Germany  50839124         Adults
15          Italy 37609721         Adults
16    Netherlands 10467463         Adults
17          Spain 29722963         Adults
18 United Kingdom 39436511         Adults

> df2
              GEO            POP    Mean
1         Belgium    Adolescents 1221.75
2         Denmark    Adolescents 2669.66
3         Finland    Adolescents 1378.44
4          France    Adolescents 2293.82
5         Germany    Adolescents 2412.83
6           Italy    Adolescents 1282.08
7     Netherlands    Adolescents 1431.87
8           Spain    Adolescents 5410.47
9  United Kingdom    Adolescents 1026.75
10        Belgium         Adults 1567.43
11        Denmark         Adults 4241.10
12        Finland         Adults 3938.95
13         France         Adults 3231.94
14        Germany         Adults 1840.54
15          Italy         Adults 1337.15
16    Netherlands         Adults 4157.15
17          Spain         Adults 3897.04

Мне нужно объединить их в одну ДФ! Я попробовал какую-то функцию с dplyr:

bind_rows(df1,df2)
  • Проблемы: у них разные длины! Поэтому я попробовал INTERSECT
intersect(df1, df2)

Error: not compatible: 
- Cols in y but not x: `Value`. 
- Cols in x but not y: `Mean`. 

Я также попытался присоединиться к

left_join(df1,df2, by "GEO", "POP")

, но это возможно только одним общим столбцом, и у меня будет два столбца / GEO и POP), которые необходимо учитывать в процессе объединения. У вас есть идея?

1 Ответ

2 голосов
/ 29 января 2020
df1 %>%
    left_join(df2, by = c("GEO", "POP"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...