【问题标题】:Applying univariate coxph function to multiple covariates将单变量 coxph 函数应用于多个协变量
【发布时间】:2026-01-05 13:00:01
【问题描述】:

对于我的数据集列,我有时间、状态、治疗、性别、BMI。我正在尝试将单变量 coxph 函数与协变量治疗、性别和 BMI 一起应用。

这是我的代码:

univ_models <- lapply( univ_formulas, function(x){coxph(x, data = RemissionTimes)})
univ_results <- lapply(univ_models,
                       function(x){ 
                           x <- summary(x)
                           p.value<-signif(x$wald["pvalue"], digits=2)
                           wald.test<-signif(x$wald["test"], digits=2)
                           beta<-signif(x$coef[1], digits=2);#coeficient beta
                           HR <-signif(x$coef[2], digits=2);#exp(beta)
                           HR.confint.lower <- signif(x$conf.int[,"lower .95"], 2)
                           HR.confint.upper <- signif(x$conf.int[,"upper .95"],2)
                           HR <- paste0(HR, " (", 
                                        HR.confint.lower, "-", HR.confint.upper, ")")
                           res<-c(beta, HR, wald.test, p.value)
                           names(res)<-c("beta", "HR (95% CI for HR)", "wald.test", 
                                         "p.value")
                           return(res)
                           #return(exp(cbind(coef(x),confint(x))))
                       })
res <- t(as.data.frame(univ_results, check.names = FALSE))
as.data.frame(res)

但是,当我运行它时,我得到了这个:

Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,  : 
  arguments imply differing number of rows: 5, 4
> as.data.frame(res)
Error in as.data.frame(res) : object 'res' not found

我不知道如何解决它。我看不出行的不同之处,我不明白为什么 R 没有找到 res。

【问题讨论】:

    标签: r cox-regression


    【解决方案1】:

    对象 res 是否出现在前面的代码中?您还可以检查它们是否是表格中的空格。不知道对你有没有帮助。

    【讨论】:

    • res 之前没有出现在我的代码中,并且我的数据集中有 0 但不是空白。没有更多的帮助,我将不胜感激。
    • 在我的数据集中,我有一列包含 A、B、C。这些都已考虑在内,但这会在处理中添加更多行。如何删除这个多余的行?
    • 对于你的第一个问题,我认为0仍然可以包含在生存数据中。你说 res 之前没有出现在代码中。尝试这样安装:
    • > #单变量 Cox 分析可以如下计算:# > res.cox res.cox
    • 然后使用您发布的代码跟进。至于栏目,不知道有没有听清楚