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

R语言按疾病分组计算生存率的代码实现求助

R语言按疾病分组计算生存率实现方案

前置说明

假设你的原始数据集命名为patient_df,字段结构与描述完全一致:

  • PersonId:患者唯一标识
  • Disease:疾病类型
  • Survival:存活标识,1表示存活,0表示死亡

测试样例数据(可选)

如果需要先测试代码效果,可运行以下代码生成符合要求的10条模拟数据:

patient_df <- data.frame(
  PersonId = 1:10,
  Disease = sample(c("肺癌", "胃癌", "肝癌"), 10, replace = TRUE),
  Survival = sample(c(0,1), 10, replace = TRUE, prob = c(0.3, 0.7))
)

方法1:使用dplyr实现(推荐,语法简洁易读)

需要先安装并加载tidyverse套件:

# 未安装时先执行安装
# install.packages("tidyverse")
library(dplyr)

# 分组计算生存率
survival_result <- patient_df %>%
  group_by(Disease) %>%
  summarise(
    疾病总人数 = n(),
    存活人数 = sum(Survival == 1),
    生存率 = round(存活人数 / 疾病总人数, 4) # 可自行调整保留的小数位数
  )

# 打印查看结果
print(survival_result)

方法2:Base R实现(无需安装第三方包)

适合不想额外安装依赖包的场景:

survival_result <- aggregate(
  Survival ~ Disease,
  data = patient_df,
  FUN = function(x) {
    total <- length(x)
    alive <- sum(x == 1)
    rate <- round(alive / total, 4)
    return(c(疾病总人数 = total, 存活人数 = alive, 生存率 = rate))
  }
)

# 转换为标准数据框格式
survival_result <- do.call(data.frame, survival_result)

# 打印查看结果
print(survival_result)

两种方法输出的结果均包含你需要的四个字段:疾病类型、疾病总人数、存活人数、生存率,可直接导出或进行后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:06:08