【问题标题】:R survival analysis coxph call multiple columnR生存分析coxph调用多列
【发布时间】:2014-08-14 17:20:11
【问题描述】:

我正在尝试使用survival 包下的coxph 函数。通常它会被称为:

coxph(Surv(time,event) ~ age+gender+salary, data=THEDATA)

但是,我在THEDATA 中有多个列。我怎样才能轻松地打电话给他们?例如,我想根据第 8 - 12 列的变量构建 Cox 模型。与做相比

coxph(Surv(THEDATA$time,THEDATA$event)~ THEDATA[,8] + THEDATA[,9] + THEDATA[,10] + THEDATA[,11] + THEDATA[,12])

,如何使用更高效的代码来完成这项工作?

【问题讨论】:

  • 一个选项:对数据进行子集化以包括时间变量、指标和模型中所需的所有其他变量,然后 Surv(time, event) ~ .

标签: r survival-analysis multivariate-testing


【解决方案1】:

这就是为什么变量名应该尽可能短的原因。

library(survMisc)
### reproducible data
set.seed(1)
### 12 variables (no factors for simplicity)
df1 <- genSurvDf(f=0, c=10)$df
c2 <- colnames(df1)[1:12]
### loop through each variable
for (i in 1:length(c2)){
    print(c2[i])
    print(coxph(Surv(t1, e) ~ get(c2[i]), data=df1))
}

本文改编自?formula

f1 <- as.formula(paste("Surv(t1, e) ~ ",
                   paste(c2, collapse= "+")))
coxph(f1, data=df1)

您应该能够修改上述内容以满足您的需要,例如

f1 <- as.formula(paste("Surv(t1, e) ~ ",
                       paste(c2[8:12], collapse= "+")))

如果你想做所有个组合(最多到一定数量),这对于小数据集很实用,这可能更有效:

c1 <- coxph(Surv(t1, e) ~ ., data=df1)
### check all combinations of up to 3
### sort by information criteria
multi(c1, maxCoef=3, how="all", confSetSize=Inf)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2021-07-17
    • 1970-01-01
    • 2013-02-07
    • 2013-05-20
    相关资源
    最近更新 更多