2013-08-06 14 views
9

Mam formuła obiektu form1Aktualizacja formuła w R

form1 = y ~ 1 + x*y 

chcę dodać jeszcze jeden termin, powiedzmy + z tego wzoru tak, że mój Form2 staje

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

znalazłem bardzo uciążliwy sposób, aby to zrobić:

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="")) 

Mimo to daje mi Form2, zastanawiam się, czy istnieje prostszy sposób to zrobić.

Z góry dziękuję!

Odpowiedz

12

Należy użyć update.formula:

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

. oznacza "co było wcześniej w tej części formuły".

+0

Dziękuję. To jest łatwe. – ThePrincess

+0

Widziałem symbol '. ~ .'. Ale nie rozumiesz, co to znaczy? Czy możesz podać mi te symbole? – ABC

Powiązane problemy