2
我试图重新编码一个由公认的国家组成的变量到我指定的区域。我试图使用dplyr
将国家变量重新编码为区域来做多个if_else
声明,但它变得非常可笑。做150多个国家重新编码的更好方法?
我想通过几个国家在矢量使用为循环来和值更改为新的东西,在下面的例子中,我想改变值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"
}
根据我如何更改格式,我得到了几个不同的错误。看来没有什么可行的。
哇,这似乎工作的非常完美。如果我理解正确,你的代码是: 1.要求df $ country的等级; 2.索引与我匹配的因子水平; 3.将比赛改为“欧洲”。 你能解释%管道中的%吗?我在网上查了好几遍,但找不到一个好的概述。 – elliot
@elliot如果有多个元素匹配,则可以使用'%in%'来返回逻辑向量。 '%level(df $ country)%in%i'返回一个逻辑向量,即TRUE/FALSE,我们根据该逻辑向量对'levels(df $ country)'进行子集分配,并将其分配给'Europe' – akrun
感谢!我几个月来一直在努力克服这个问题。祝福你。 – elliot