У меня есть этот data.frame с переменной V21, в которой записано много стран, я хочу уменьшить ее, просто указав континент, а не все эти страны. Например, «Куба», «Перу», «Аргентина», а не отдельные уровни V21, я хочу, чтобы они стали «Южной Америкой». Вот код, который я пытался использовать:Совокупные факторы в переменной в R
recode(WaveOne.test$V21, "levels("Cuba","Colombia","Costa Rica","Argentina","Chile","Ecuador","Peru","Venezuela")= 'South America'")
Можете ли вы предложить то, что случилось с моим кодом или, возможно, другой метод? Я полный новичок в R и его синтаксис. Спасибо!
======== ОБНОВЛЕНИЕ =========
SA_countries <- c("Cuba", "Mexico", "Argentina","Jamaica", "Haiti","West Indies", "Chile", "Ecuador", "Venezuela", "Other South America", "El Salvador", "Guatemala", "Nicaragua", "Dominican Republic", "Panama", "Costa Rica", "Peru")
< Asia_countries - с ("Филиппины", "Вьетнам", "Лаос", "Камбоджа", «Хмонг», «Другая Азия», «Китай», «Гонконг», «Тайвань», «Япония», «Корея», «Индия», «Пакистан») Europe_Canada < - c («Европа/Канада») MiddleEast_Africa < - с ("Ближний Восток/Африка")
continents <- list(`South America`= SA_countries, `Asia` = Asia_countries, `Europe_Canada` = Europe_Canada, `Middle East & Africa` = MiddleEast_Africa)
levels(WaveOne.test$V21) <- c(levels(WaveOne.test$V21), names(continents))
for(i in seq_along(continents)) WaveOne.test$V21[WaveOne.test$V21 %in% continents[[i]]] <- names(continents)[i]
levels(WaveOne.test$V21)
Мой выход однако:
уровни (WaveOne.test $ V21)
1 "Куба" "Мексика" "Никарагуа" "Колумбия", "Доминиканская Республика", "Сальвадор", "Гватемала"
[8] " Гондурас "" Коста-Рика "" Панама "" Аргентина "" Чили "" Эквадор "" Перу "
[15]" Венесуэла "" Другая Южная Америка "" Гаити "" Ямайка "" Вест-Индия "" Филиппины "" Вьетнам "
[22] "Лаос" "Камбоджа" "Хмонг" "Другая Азия" "Китай" "Гонконг" "Тайвань"
[29] «Япония», «Корея», «Индия», «Пакистан», «Ближний Восток/Африка» «Европа/Канада», «Южная Америка»
[36] «Азия» «Europe_Canada» «Ближний Восток & Африка»