2015-08-26 19 views
6

Ich versuche, ein Modell-Validierungstool aufzubauen, in dem ich einen Vorwärtsauswahlansatz befolge. Wenn also mein Modell model<- y~a*b+c*d+e ist, kann ich die Terminologiefunktion in R attributes(terms(model))$term.labels verwenden Finden Sie alle Prädiktoren in meinem Modell heraus, aber das Problem bei diesem Ansatz ist, dass Interaktionen immer zu Ende gehen. Ich will a:b to be after a and b, und nicht am Ende, und das gleiche gilt für c: d. Gibt es eine Möglichkeit, Interaktionsterme zu bestellen? Kann mir bitte jemand helfen?Formelmanipulation (Platz Interaktionsterme in der richtigen Reihenfolge)

Antwort

8

Der einfachste Weg keep.order in terms.formula()

model <- y ~ a * b + c * d + e 
labels(terms(model, keep.order = TRUE)) 
# [1] "a" "b" "a:b" "c" "d" "c:d" "e" 

zu verwenden wäre, um die Hilfedatei nachschlagen, werden Sie ?terms.formula verwenden, da diese Methode nicht in ?terms gezeigt. Aber terms()wird Versand an die Formel-Methode. Darüber hinaus ist labels() eine Abkürzung, um den Begriff Etiketten von terms() zu erhalten.

+0

Vielen Dank! :) – devdreamer

+0

Sicher, glücklich zu helfen! –

Verwandte Themen