r - 如何更新条件公式?

标签 r formula

让我直接进入示例。考虑以下等式:

 frml <- formula(y ~ a + b | x + z )

使用这样的公式规范,例如使用 AER::ivreg.

我想更新这个公式,使其变为

 frml2 <- y ~ a + b + c | x + z + w

但是,我不确定如何分别更新条件符号 | 之前和之后的部分。例如,

 frml2 <- update.formula(frml, . ~ . + c | . + w)

给了

 y ~ ((a + b | x + z) + c | (a + b | x + z) + w)

这不是我想要的。问题是 . 指的是右侧(或左侧)的整个公式,包括条件。有谁知道如何相应地更新公式?

一种方法似乎是将公式转换为字符向量,在 | 处拆分向量,添加我想要添加的任何内容,然后将公式重新组合在一起。虽然这很容易,但不知何故,我觉得必须有一种更简单的方法来做到这一点。我肯定不是第一个处理这类问题的人。任何建议/提示/评论将不胜感激!

最佳答案

如果您不能使用包,则无法从您的问题中确定,因为 Formula 包具有专门用于此的功能。它将其对象分类为 formulaFormula:

> library(Formula)
> frml <- Formula(y ~ a + b | x + z )
> update(frml, . ~ . + c | . + w)
y ~ a + b + c | x + z + w
> class(frml)
[1] "Formula" "formula"

关于r - 如何更新条件公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330966/

相关文章:

r - 如何使用 R 跳过我要导入的数据文件中的注释行

r - 在 R 中使用 igraph 在网络图上仅显示特定标签

r - Coursera 空气污染作业

sql - 如何确定 Crystal Reports 函数的用途?

php - 使用 eval 解析表单输入的方程式的最安全方法

excel - 使用 Excel 仅将唯一列转置为标题行

python - 如何将数学公式转换为 Python 代码?

r - ggplot 箱线图中缺少值的箱宽一致

r - 使用 model.matrix() 创建虚拟变量

excel - Excel 中具有多个条件的 SumIf 公式