向公式添加额外变量

问题描述 投票:0回答:3

我想使用单独的对象

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

r syntax formula
3个回答
4
投票

像这样使用重新制定和更新:

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

0
投票

如果您将

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 = " ~ "))

0
投票

这对你有用吗?

update(part_A, paste0( ". ~ . + ", paste(part_B, collapse= " + ")))
## y ~ x1 + x2 + x3
© www.soinside.com 2019 - 2024. All rights reserved.