如何更新条件公式? [英] How to update a conditional formula?

查看:20
本文介绍了如何更新条件公式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我直接跳到示例中。请考虑以下等式:

 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"

这篇关于如何更新条件公式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆