Назначить числовое значение c при условии совпадения строк между различными наборами данных в R? - PullRequest
1 голос
/ 23 марта 2020

У меня есть два фрейма данных, один (называемый «безумным»), который содержит экономические c данные по каждой стране за период 1960-2016 гг., Где каждая страна-год представляет собой одну строку. Другой фрейм данных (называемый «ccodes») состоит из названий стран в одном столбце и цифры c код страны в другом столбце.

Я хотел бы провести l oop через фрейм данных, который содержит экономические данные c (называемые "mads"), сопоставить названия стран между фреймами данных, а затем присвоить правильную цифру c страна код для нового столбца в первом кадре данных. Как только я смогу присвоить экономическим c данным коды стран, я планирую объединить различные наборы данных по странам.

Я пытался использовать grep, но я не могу понять, как брать совпадения и присваивать соответствующую цифру c код страны, при условии совпадения. Мой код с использованием grep выглядит следующим образом:

for(i in 1:nrow(mad)){
  country <- mad$country[i]
  if (grep(country, ccodes$statenme)){
    mad$ccode <- ccodes$ccode
  }
}

, который возвращает следующее сообщение об ошибке:

Error in `$<-.data.frame`(`*tmp*`, "ccode", value = c(2L, 20L, 31L, 40L,  : 
  replacement has 243 rows, data has 11389

Есть ли уже какая-то функция, которую я могу использовать для выполнения sh этого задание, или на самом деле лучший путь?

** РЕДАКТИРОВАТЬ: Этот пакет для кодов стран уже существует. Он называется кодом страны, и вы можете прочитать об этом здесь. https://cran.r-project.org/web/packages/countrycode/countrycode.pdf.

...