позвольте мне сразу перейти к примеру. Рассмотрим следующее уравнение:
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)
что не совсем то, что я хочу. Проблема в том, что .
относится ко всей формуле в правой (или левой) части, включая условную. Кто-нибудь знает, как я могу обновить формулу соответственно?
Кажется, один из способов состоит в том, чтобы преобразовать формулу в вектор символов, разделить вектор по |
, добавить все, что я хочу добавить, и снова собрать формулу. Хотя это легко, почему-то я чувствую, что должен быть более простой способ сделать это. Я, конечно, не первый человек, который сталкивается с такой проблемой. Любой совет/подсказка/комментарий будет принят с благодарностью!