向公式添加额外变量
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 = " ~ "))
我想使用单独的对象向公式添加额外的变量 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 = " ~ "))