如何通过函数输入将协变量添加到 cox 模型

How do I add covariates to a cox model via a function input

我有一个考克斯模型

cntrl_reduced <- coxph(Surv(time, status) ~ A + B + C, data=df)

当我 运行 执行此操作时,我没有收到任何错误并且模型可以正常工作。我正在将其写入函数并希望修改 predictor/covariables。

所以我将函数输入为

covariates= c('A', 'B', 'C')

并在函数中取消列出这个

covariates <- noquote(paste(covariates, collapse =' + '))

covariates
output: A + B + C

但是,当我尝试 运行

cntrl_reduced <- coxph(Surv(time, status) ~ covariates, data=df)

我收到错误

Error in model.frame.default(formula = Surv(time, status) ~ covariates,  : 
  variable lengths differ (found for 'covariates')

我如何设置它以便将我的协变量输入变成一个变量,而不是硬编码?

你不能在~符号后面放那种对象。相反,您需要使用 as.formula。例如

covariates <- c("A", "B", "C")
formulaString <- paste("Surv(time, status) ~", paste(covariates, collapse="+"))
coxph(as.formula(formulaString), data=df)