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



我正在尝试将一个由公认的国家组成的变量重新编码为我指定的区域。我尝试使用dplyr将国家/地区变量重新编码为区域进行多个if_else语句,但它变得越来越长。

我想使用forloop 在向量中循环遍历多个国家/地区并将值更改为新值,在下面的示例中,我想更改与i匹配的df$country值并将其更改为"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"
}

我收到几个不同的错误,具体取决于我如何更改格式。 似乎什么都行不通。

由于"国家"是factor的,我们可以将%in%"i"的"国家"的levels分配给"欧洲",而不是使用for循环

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

最新更新