如何在R中对特定变量分组?使用dplyr将大洲字段重编码为生态区
实现方案
你可以使用dplyr包的mutate()结合case_when()函数完成自定义分组映射,完整代码如下:
# 加载dplyr包 library(dplyr) # 构造示例数据 data <- data.frame( temp = c(1,2,3,4,5), region = c("Europe","Asia","N America", "S America","Australia") ) # 新增分组字段region_2 data <- data %>% mutate(region_2 = case_when( region %in% c("Europe", "Asia", "Africa") ~ "Eurasia+Af", region %in% c("N America", "S America") ~ "Americas", region == "Australia" ~ "Australia" )) # 查看结果 print(data)
逻辑说明
case_when会按顺序判断条件,匹配到第一个符合的条件就返回对应的值- 如果原数据的region取值还有其他异常值,可以在最后加一行
TRUE ~ "其他"作为兜底规则,避免返回NA
运行结果和你期望的输出完全一致:
temp region region_2 1 1 Europe Eurasia+Af 2 2 Asia Eurasia+Af 3 3 N America Americas 4 4 S America Americas 5 5 Australia Australia
内容的提问来源于stack exchange,提问作者djler
相关产品推荐
相关产品推荐

