首页 > 解决方案 > 如何使用 as.formula 和 paste 来形成方程式

问题描述

我有一组变量,例如vars <- c("age", "gender", "city"). 我需要拟合一个模型:fit <- coxme(Surv(tt, st) ~ age + gender + city + (1|id), data = df). 一切正常。但由于我有很多变量,我需要使用 as.formula:

vars <- c("age", "gender", "city")
fit <- coxme::coxme(as.formula(paste("Surv(tt, st) ~", 
                        paste(vars, collapse = " + "), 
                        "+ (1|id), data = df")))

我得到以下错误信息:

Error in parse(text = x, keep.source = FALSE) : <text>:1:121: unexpected ','

我怎么能写出这个方程?

标签: rformula

解决方案


不包括", data = df". 公式只是第一部分。尝试这样的事情:

vars <- c("age", "gender", "city")
fit  <- coxme(as.formula(paste("Surv(tt, st) ~", 
                               paste(vars, collapse=" + "), 
                               "+ (1|id)")),
              data=df)

推荐阅读