进行 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"
我正在尝试将由已识别国家/地区组成的变量重新编码为我指定的区域。我尝试使用 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"