我正在尝试将由已识别国家/地区组成的变量重新编码为我指定的区域。我尝试使用 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"
}
根据我更改格式的方式,我收到了几个不同的错误。看来什么都行不通。
最佳答案
由于“国家/地区”是因素
,因此我们可以将“国家/地区”的级别
分配为%in%
“i”到“欧洲”而不是使用 for
循环
levels(df$country)[levels(df$country) %in% i] <- "Europe"
关于r - 有更好的方法来进行 150 多个国家/地区重新编码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45131607/