进行 150 多个国家/地区重新编码的更好方法?

A better way to do over 150 country recodes?

我正在尝试将由已识别国家/地区组成的变量重新编码为我指定的区域。我尝试使用 dplyr 执行多个 if_else 语句以将国家/地区变量重新编码为区域,但它变得非常长。

我想使用 for 循环在一个向量中循环遍历多个国家并将值更改为新值,在下面的示例中我想更改值在 df$country 中匹配 i 并将其更改为 "Europe"。这是我开发的代码,它似乎不想工作。有更好的方法吗?

df <- data.frame(country =c("Netherlands", "US", "Canada", "Frace", "Italy"),
       ID=1:100)
i <- c("Netherlands", "France", "Italy")
n <- length(i)

for (i in n){
df$country[(df$country == i)] <- "Europe"
}

根据我更改格式的方式,我遇到了几个不同的错误。好像什么都不行。

由于'country'是factor,我们可以将'country'的levels赋值给%in% 'i' 20=] 而不是使用 for 循环

levels(df$country)[levels(df$country) %in% i] <- "Europe"