如何使用 as.formula 和粘贴来形成方程式

How can I use as.formula and paste to form equations

我有一组变量,例如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 ','

这个等式怎么写?

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

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