【问题标题】:Adding extra variables to a formula向公式添加额外变量
【发布时间】:2021-07-18 10:15:25
【问题描述】:

我想使用单独的对象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

【问题讨论】:

  • 可耻的是,我知道没有比fml &lt;- as.formula(paste("~", part_B[1], "+, part_B[2]))update(part_A, fml) 更好的方法了。 formula.tools 不够用。你可以试试formulaic 包。

标签: r syntax formula


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果你把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 = " ~ "))
    

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多