Как сопоставить значение цифры c с категориальным значением в другом наборе данных? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть два набора данных. Один с числовым значением c, присвоенным отдельным категориальным переменным (название страны), а второй с ответами на опрос, включая национальность человека. Как назначить значение цифры c новому столбцу в наборе данных опроса с соответствующим названием страны / страны?

Вот заголовок набора данных 1 (my.data1):

    EN           HCI
1 South Korea  0.845
2 UK           0.781
3 USA          0.762

Вот заголовок набора данных 2 (my.data2):

         Nationality OIS IR
1        South Korea   2  2
2        South Korea   3  3
3                USA   3  4
4                 UK   3  3

Я бы хотел, чтобы это выглядело так:

         Nationality OIS IR   HCI
1        South Korea   2  2 0.845
2        South Korea   3  3 0.845
3                USA   3  4 0.762
4                 UK   3  3 0.781

Я пробовал это но безуспешно:

my.data2$HCI <- NA
for (i in i:nrow(my.data2)) {
  my.data2$HCI[i] <- my.data1$HCI[my.data1$EN == my.data2$Nationality[i]]
}

1 Ответ

0 голосов
/ 19 марта 2020

Мы можем использовать left_join

library(dplyr)
left_join(my.data2, my.data1, by = c("Nationality" = "EN"))

Или с merge из base R

merge(my.data2, my.data1, by.x = c("Nationality", by.y = "EN", all.x = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...