gpt4 book ai didi

r - 在 survdiff 调用中使用 survfit 对象的公式

转载 作者:行者123 更新时间:2023-12-01 17:55:35 27 4
gpt4 key购买 nike

我正在 R 中进行一些生存分析,并希望整理/简化我的代码。

目前我正在执行数据分析的几个步骤:

  1. 创建一个 Surv 对象(时间变量,指示每个观察是否被审查);
  2. 根据分类预测器拟合此 Surv 对象,用于绘制/估计中位生存时间过程;和
  3. 计算对数秩检验,以询问是否有证据表明各组之间的生存率存在“显着”差异。
作为一个例子,这里是一个使用 R 的生存包中的肺数据集的模型。所以下面的代码与我想要做的足够相似,但在预测器集方面得到了简化(即为什么我想简化代码,这样我就不会在模型之间进行不一致的调用)。

library(survival)

# Step 1: Make a survival object with time-to-event and censoring indicator.
# Following works with defaults as status = 2 = dead in this dataset.
# Create survival object
lung.Surv <- with(lung, Surv(time=time, event=status))

# Step 2: Fit survival curves to object based on patient sex, plot this.
lung.survfit <- survfit(lung.Surv ~ lung$sex)
print(lung.survfit)
plot(lung.survfit)

# Step 3: Calculate log-rank test for difference in survival objects
lung.survdiff <- survdiff(lung.Surv ~ lung$sex)
print(lung.survdiff)

现在一切都很好,我可以忍受这一点,但希望做得更好。

所以我的问题是围绕步骤3。我在这里想做的是能够使用lung.survfit对象的公式中的信息来计算生存曲线的差异:即在调用中生存差异。这就是我固执的[原文如此]编程技巧遇到障碍的地方。以下是我目前的尝试:如果您能提供任何帮助,我将不胜感激!一旦我能解决这个问题,我应该能够将解决方案包装在一个函数中。

lung.survdiff <- survdiff(parse(text=(lung.survfit$call$formula)))
## Which returns following:
# Error in survdiff(parse(text = (lung.survfit$call$formula))) :
# The 'formula' argument is not a formula

最佳答案

正如我上面评论的,我在写完这个问题后不久就找到了答案。

所以上面的步骤 3 可以替换为:

lung.survdiff <- survdiff(formula(lung.survfit$call$formula))

但是正如 Ben Barnes 在对该问题的评论中指出的那样,可以更直接地从 survfit 对象中提取公式

lung.survdiff <- survdiff(formula(lung.survfit))

这正是我想要的并且希望能够实现 - 谢谢本!

关于r - 在 survdiff 调用中使用 survfit 对象的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com