选择`~`的所有内容

时间:2015-09-02 18:33:25

标签: r

我编写了一个用户指定线性模型的函​​数(例如y~x+tx+x*tx)。在用户指定此模型后,我想使用他们的输入来创建具有不同y的新公式。

我想我只需要选择公式的~x+tx+x*tx部分,然后将其粘贴到新的y变量中。我怎样才能做到这一点?或者,还有更好的方法?

1 个答案:

答案 0 :(得分:2)

也许最明显的是(直到现在才发生这种情况......多么悲伤)

form <- y~x+tx+x*tx
update(form, new_y ~ .)

有几种方法可以解决这个问题,但这可能是我的首选(至少目前为止)。

form <- y~x+tx+x*tx
rhs <- sub(".+~", "", deparse(form))
as.formula(paste0("new_y ~", rhs))

您也可以使用

获得右侧
tail(as.character(form), 1)

但是假设公式有右侧。