如何通过函数输入将协变量添加到 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)
我有一个考克斯模型
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)