我想使用单独的对象
part_B
向公式添加额外的变量。举个例子:
part_A <- as.formula("y ~ x1")
part_B <- c("x2", "x3")
我尝试了一些方法,但一个问题是你不能在对象
as.formula
上调用 part_B
(因为在这种情况下,我可以通过组合字符向量来创建公式)。
想要的结果
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 = " ~ "))
这对你有用吗?
update(part_A, paste0( ". ~ . + ", paste(part_B, collapse= " + ")))
## y ~ x1 + x2 + x3