2015-09-02 104 views
0

我写了一个函数,用户指定一个线性模型(例如,y~x+tx+x*tx)。在用户指定这个模型后,我想用他们的输入来创建一个不同的公式y选择'〜`的所有内容

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

回答

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) 

获得右侧但是,假设有下式的右手边。

+0

'update()'是完美的 – User7598