向公式添加额外变量

Adding extra variables to a formula

我想使用单独的对象向公式添加额外的变量 part_B。例如:

part_A <- as.formula("y ~ x1")
part_B <- c("x2", "x3")

我尝试了几件事,但一个问题是您不能在对象 part_B 上调用 as.formula(因为在那种情况下我可以通过组合字符向量来创建公式)。

想要的结果

as.formula("y ~ x1 + x2 + x3")

有什么办法吗?我想一个解决方案是创建一个将字符向量写入 "y ~ x1 + x2 + x3" 的函数,这样它就可以被馈送到 as.formula.

像这样重新制定和更新:

update(part_A, reformulate(c(".", part_B)))
## y ~ x1 + x2 + x3

这也有效:

v <- all.vars(part_A)
reformulate(c(v[-1], part_B), v[1])
## y ~ x1 + x2 + x3

如果您将 part_A 写成向量:

part_A <- c("y", "x1")
part_B <- c("x2", "x3")

new_formula <- as.formula(paste(part_A[1], paste(c(part_A[2], part_B), collapse = " + "), sep = " ~ "))