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

如何在R中基于ID列字符值添加诊断标记新列

给R数据框添加诊断状态列的解决方法

用dplyr的mutate + ifelse实现

你之前尝试的方向是对的,大概率是判断条件没写对。要匹配多个ID值,得用%in%运算符,而不是单个的==。直接看代码:

library(dplyr)

# 你的原始数据
ID <- c("a1", "a2", "a3", "b2", "b3", "d4")
score <- c(23,35,45,57,83,90)
df <- data.frame(ID, score)

# 新增diagnosis列
df <- df %>%
  mutate(diagnosis = ifelse(ID %in% c("a2", "d4"), 1, 2))

# 查看结果
df

运行后输出就是你想要的:

ID score diagnosis
1 a1    23         2
2 a2    35         1
3 a3    45         2
4 b2    57         2
5 b3    83         2
6 d4    90         1

更易扩展的写法:用case_when

如果之后需要增加更多诊断规则,case_when会比ifelse更清晰:

df <- df %>%
  mutate(diagnosis = case_when(
    ID %in% c("a2", "d4") ~ 1,
    TRUE ~ 2  # 所有没匹配到的情况都标记为2
  ))

不用dplyr的基础R写法

要是不想加载额外包,直接用基础R也能搞定:

df$diagnosis <- ifelse(df$ID %in% c("a2", "d4"), 1, 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:40:29