У меня есть два фрейма данных, один (называемый «безумным»), который содержит экономические 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.