2013-08-06 16 views
9

Ho un form1 oggetto formulaAggiornamento formula nella R

form1 = y ~ 1 + x*y 

voglio aggiungere più un termine, diciamo + z in questa formula in modo che il mio form2 diventa

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

ho trovato molto modo ingombrante per fare questo:

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

Anche se questo mi dà la form2, mi chiedo se c'è un modo più semplice per fare questo.

Grazie in anticipo!

risposta

12

Si dovrebbe usare update.formula:

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

Il . significa "ciò che è stato in precedenza in questa parte della formula".

+0

Grazie. Questo è facile. – ThePrincess

+0

Ho visto il simbolo '. ~ .'. Ma non capisco cosa significa? Potresti per favore darmi riferimenti a quei simboli? – ABC

Problemi correlati