R: заполнить новый столбец на основе нескольких переменных в другом наборе данных - PullRequest
0 голосов
/ 26 марта 2020

У меня есть первый кадр данных с 4 столбцами (ID, год, X и Y)

Id Year    X     Y
1  2017  20_24
1  2016  45_49
2  2017  30_34
2  2014  20_24
4  2014  14_19
4  2015  20_24

Я хотел бы заполнить столбец Y, используя другой набор данных. Второй набор данных получил те же переменные ID и год, остальные столбцы - это элементы столбца X в первом наборе данных.

Id Year    14_19   20_24   30_34  45_49
1  2017     123    122     5555    4444
1  2016     456    543     8888    333
1  2015     5644   0908    0987    5456
1  2014     5642   767     233     323
2  2017     123    123     5666    989
2  2016     456    876     55      45
2  2015     786    789     324     77
2  2014     633    543     334     34
3  2017     123    123     321     44
3  2016     456    345     45645   23
3  2015     876    4556    6554    23

Так что я бы хотел, чтобы Y был заполнен, когда ID, Год и элементы переменных X соответствуют столбцам второго набора данных. Как это возможно? Спасибо!

1 Ответ

1 голос
/ 26 марта 2020

Попробуйте это решение dplyr и tidyr:

library(dplyr)
library(tidyr)

result <- df2 %>%
  gather("X", "Y", -c("ID", "Year")) %>%
  right_join(df1, by = c("ID", "Year", "X"))

Или с использованием pivot_longer()

result <- df2 %>%
  pivot_longer(cols = 3:4,
               names_to = "X",
               values_to = "Y") %>%
  right_join(df1, by = c("ID", "Year", "X"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...