代码之家  ›  专栏  ›  技术社区  ›  elliot

有没有更好的方法来进行150多个国家的重新编码?

  •  2
  • elliot  · 技术社区  · 7 年前

    if_else 语句使用 dplyr 将国家变量重新编码为区域,但它的长度太长了。

    我想使用 对于 在向量中循环几个国家,并将值更改为新值,在下面的示例中,我想更改中的值 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 回复  |  直到 7 年前
        1
  •  2
  •   akrun    7 年前

    因为“国家”是 factor ,我们可以指定 levels %in% for

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