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

R新手如何根据三个二分类疾病列生成任意患病标识新列

R 实现新增「任意患病D」列的解决方案

方法1:基础R实现(无需安装额外包)

  • 写法1(适合变量少的场景,逻辑直观)
    假设你的数据集命名为df,直接执行以下代码:
    df$任意患病D <- as.integer(df$A == 1 | df$B == 1 | df$C == 1)
    逻辑说明:| 是R的逻辑或运算符,只要三个条件有一个成立就返回TRUE,as.integer()会自动将TRUE转为1、FALSE转为0,完全匹配需求。

  • 写法2(适合变量多的场景,无需逐个写列名)
    df$任意患病D <- as.integer(rowSums(df[,c("A","B","C")]) > 0)
    逻辑说明:先对每一行的A、B、C三列求和,求和结果大于0就说明至少有一个列取值为1,再转成整数即可得到目标值。

方法2:dplyr 包实现(适合tidyverse生态用户)

先加载dplyr包:
library(dplyr)
执行以下代码即可:

df <- df %>%
  mutate(任意患病D = as.integer(if_any(c(A,B,C), ~ .x == 1)))

逻辑说明:if_any()是dplyr专门用来判断多列是否任意满足条件的函数,指定列只要有一个满足条件就返回TRUE,转整数后就是需要的0/1值。

补充说明:如果A/B/C列存在缺失值NA,可以在计算时添加na.rm = TRUE参数过滤缺失值,比如rowSums的写法改为rowSums(df[,c("A","B","C")], na.rm = TRUE) > 0即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:36:03