11

我有一个公式对象 form1

 form1 = y ~ 1 + x*y

我想再添加一个术语,在这个公式中说 +z,这样我的 form2 就变成了

 form2 = y ~ 1 + x*y + z.

我找到了一个非常麻烦的方法来做到这一点:

terms.form1 <- terms(form1)
terms.labels <- attr(terms.form1,"term.labels")
old.terms <- paste(terms.labels,collapse=" + ")
updated.terms <- paste(old.terms," + z",collapse=" + ")

form2 = as.formula(paste(as.character(form1[[2]]),"~",updated.terms,collapse=""))

虽然这给了我 form2,但我想知道是否有更简单的方法来做到这一点。

先感谢您!

4

1 回答 1

20

你应该使用update.formula

update(y ~ 1 + x*y,    ~ . + z)
y ~ x + y + z + y:x

. 意思是“以前在这部分公式中的内容”

于 2013-08-06T00:54:57.720 回答