У меня есть набор данных, который включает (среди прочих многих переменных) 5 столбцов, указывающих страну, из которой получены данные, закодированные в виде числа. Я хотел бы создать новую переменную с указанием страны в виде простого текста (например, Испания вместо 312).
Вот пример данных с 5 строками и 2 столбцами для воспроизводимости:
c <- structure(list(CountryAP = structure(c(109, NA, 124, NA, NA), label = "Country of the Child Helpline (Asia Pacific region)", labels = c(Afghanistan = 109, `New Zealand` = 124), class = "haven_labelled"),
CountryEr = structure(c(NA, 313, NA, 287, 278), label = "Country of the Child Helpline (Europe region)", labels = c( Azerbaijan = 278, Finland = 287, Sweden = 313), class = "haven_labelled")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -5L))
Я хочу вычислить новую переменную (называемую Страна ) со всеми странами, извлеченными из чисел из переменных, называемых CountryAP и CountryEr .
Я пробовал это:
c <- c %>% mutate(Country = ifelse(CountryAP == 109, 'Afghanistan', ifelse(CountryAP == 124, 'New Zealand', ifelse(CountryEr == 313, 'Sweden', ifelse(CountryEr == 287, 'Finland', ifelse(CountryEr == 278, 'Azerbaijan','N/A'))))))
Но хотя он правильно вычисляет строки, содержащие значения в первой переменной (CountryAP), он игнорирует информацию о второй переменной (CountryEr) и дает мне только следующее:
CountryAP CountryEr Country
1 109 NA Afghanistan
2 NA 313 NA
3 124 NA New Zealand
4 NA 287 NA
5 NA 278 NA
Когда я запускаю только часть CountryEr, она работает правильно.
Есть идеи, как сделать так, чтобы оператор ifelse согласился смотреть на другую переменную?
Любая помощь будет принята с благодарностью!