R生存分析:显示每个组的总患者数(n)

3

编辑:添加一个公共数据集,您可以使用它。

如果这个问题已经有答案,我很抱歉……我无论如何在这里、谷歌或YouTube上都找不到例子或解释。

我正在试图找到一种方法来显示每个组的总患者数(n)。

如果使用公共数据源:

>data(leukemia)
>leukemia

      time  status      x
      9       1     Maintained
      13      1     Maintained
      13      0     Maintained
      .       .         .
      .       .         .
      22   43      1 Nonmaintained
      23   45      1 Nonmaintained

以下是一个简单的脚本来执行分析:

library(survival)

group <- leukemia$x

surv=Surv(leukemia$time,leukemia$status)
surv.data.group <- survfit(surv~group,type="kaplan-meier",conf.type="none")

接下来是一个简单的图例,用于展示每个组的颜色:

plot(surv.data.group, col=c(1,2), xlab='Time (Months)', 
xmax=120,mark.time=FALSE, main="Survival Curve Example")

legend("topright", legend=unique(group), col=(1:2), lwd=0.5, bty='n')

我希望的结果是在图例或图表上显示每个组的病人总数(n)。例如,图例可能如下所示:
Maintained (n=11)
Nonmaintained (n=12)

如果您提供一个可重现的格式的样本数据,那么我们帮助您会更容易。您当前的数据不易于导入R进行测试。 - MrFlick
当然,实际上有一个内置的数据集可以使用:data(leukemia)对于列:Time = 时间 Censor = 状态 Group = x - Sean
1个回答

2
这是一个解决方法,如果你有两个组:
group1 <- paste("Group 1 ", "(n=", table(data$group)[1], ")", sep="")
group2 <- paste("Group 2 ", "(n=", table(data$group)[2], ")", sep="")

group <- data$group
legend("topright", legend= c(group1, group2), col=(1:2), lwd=1.0, bty='n')

使用 table() 函数可以得到您的分组总和,然后使用 [ ] 进行索引。

enter image description here


1
只是一个小建议:在填写字符串的“空白”时,使用sprintfpaste更易读,例如,group1 <- sprintf("Group 1 (n=%s)", table(data$group)[1])。它只是用下一个参数替换%s - Gregor Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接