You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中使用if条件实现数据框肿瘤部位列分类重命名的方法

R语言肿瘤部位分类重编码实现方案

你可以通过建立原始部位取值到目标分类的映射关系,快速生成分类后的新列,以下是两种常用的实现方法:

方法1:使用dplyr包的case_when函数(适合规则较少、逻辑灵活的场景)

先加载dplyr包,再通过mutate生成新列:

# 安装包(已安装可跳过)
install.packages("dplyr")
library(dplyr)

# 示例数据,你可以替换成自己的数据集
df <- data.frame(
  肿瘤部位 = c("肠", "结肠", "肺", "胃", "膀胱", "肠", "肺")
)

# 生成分类新列
df <- df %>%
  mutate(肿瘤部位分类 = case_when(
    # 自定义分类规则
    肿瘤部位 %in% c("胃", "肠", "结肠") ~ "胃肠道",
    肿瘤部位 == "肺" ~ "呼吸系统",
    肿瘤部位 == "膀胱" ~ "泌尿系统",
    # 未匹配到的取值默认保留原值,也可以改成 ~ "其他"统一归类
    .default = 肿瘤部位
  ))

方法2:使用命名向量映射(适合分类规则多、需要批量维护的场景)

如果分类条目较多,可以先统一维护映射关系再批量匹配:

# 建立映射关系,键为原始部位值,值为对应分类
site_map <- c(
  "胃" = "胃肠道",
  "肠" = "胃肠道",
  "结肠" = "胃肠道",
  "肺" = "呼吸系统",
  "膀胱" = "泌尿系统"
)

# 匹配生成新列,未匹配的取值保留原值,也可以替换为"其他"
df$肿瘤部位分类 <- site_map[df$肿瘤部位]
df$肿瘤部位分类[is.na(df$肿瘤部位分类)] <- df$肿瘤部位[is.na(df$肿瘤部位分类)]

注意事项

  • 你可以根据自己的分类规范调整上述规则中的取值和对应分类,新增分类直接补充对应条目即可
  • 如果原始肿瘤部位列存在多余空格、中英文标点混用、大小写差异,可以先通过trimws()、gsub()、tolower()等函数清洗原始列后再做匹配,避免匹配遗漏

内容的提问来源于stack exchange,提问作者kirellos said

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:36:03