R语言如何根据现有列取值新增分类变量列
R语言基于数据框列值新增分类列的实现方法
方法1:基础R实现(无需加载额外包)
直接使用ifelse搭配%in%匹配多个目标值,一行代码即可完成:
# 赋值新增category列 df$category <- ifelse(df$common_name %in% c("Sailfin molly", "Hardhead silverside"), "Fish", "Crab")
运行后调用head(df)即可看到预期输出结果。
方法2:dplyr包实现(适合tidyverse生态用户)
如果日常使用tidyverse体系,可以用mutate()搭配if_else()或者扩展性更强的case_when()实现:
用if_else实现
# 加载dplyr包 library(dplyr) df <- df %>% mutate(category = if_else(common_name %in% c("Sailfin molly", "Hardhead silverside"), "Fish", "Crab"))
用case_when实现(后续新增分类规则更易扩展)
df <- df %>% mutate(category = case_when( common_name %in% c("Sailfin molly", "Hardhead silverside") ~ "Fish", .default = "Crab" ))
内容的提问来源于stack exchange,提问作者Nate
相关产品推荐
相关产品推荐

