2016-10-19 4 views
0

Ich brauche eine for-Schleife innerhalb einer Formel in R. "Normale" Schleifen sind ziemlich einfach in R (Siehe zum Beispiel hier https://www.r-bloggers.com/how-to-write-the-first-for-loop-in-r/) Allerdings gibt es "" in meiner Formel scheint es nicht Arbeit ... Kennt jemand einen Weg um dies? In dieser Formel möchte ich ID1 eine Variable sein, von denen ich eine Liste von 500 verschiedenen IDs habenR for Schleife in einer Formel

testing <- formula(paste("STATUS ~ as.factor(data$TEMP) + C1 + ID1 * ID2 ")) 
+0

wollen Sie all die Zwei-Wege-Interaktionen zwischen allen IDs? Wenn ja, könntest du [this] (http://stackoverflow.com/questions/11633403/how-to-automatisch-include-all-2-way-interactions-in-a-glm-model-in-r) ändern die Funktion 'update()'. – roman

+0

Hmm interessant! Ja, das würde mir gefallen! Könntest du ein bisschen helfen (ich bin kein R-Experte) wie würde das aussehen? –

+0

Ich habe eine Antwort hinzugefügt, aber lassen Sie mich wissen, wenn Sie mehr Hilfe benötigen – roman

Antwort

0

Verwendung as.formula anstatt nur formula. Das sollte funktionieren paste. Obwohl Ihre Version für mich funktioniert .. Ich bekomme Klasse formula in beide Richtungen. Set sep="", so dass es keine Leerzeichen mehr in der Formel enthält ... In Bezug auf den zweiten Teil bin ich mir nicht sicher, was Sie fragen. Sie wollen es auch als Faktor?

2
y <- rnorm(10) 
x1 <- rnorm(10) 
x2 <- rnorm(10) 
x3 <- rnorm(10) 
d <- data.frame(y, x1, x2, x3) 

# fit a model with all 2 way interactions 
model1 <- lm(y ~ .*., d) 
# remove one that you don't want 
model2 <- update(model1, ~.-x2:x3) 
Verwandte Themen