Übergeben Sie einen Vektor, der die Variablen in die lm () - Formel
War ich versucht, zu automatisieren, ein Stück von meinem code, so dass die Programmierung weniger aufwendig.
Im Grunde war ich versucht zu tun, eine schrittweise Selektion der Variablen mit fastbw()
im rms Paket. Ich würde gerne weitergeben der Liste der Variablen ausgewählt, von fastbw()
in eine Formel als y ~ x1+x2+x3
, "x1" "x2" "x3" wird die Liste der Variablen ausgewählt, von fastbw()
Hier ist der code, den ich versucht und hat nicht funktioniert
olsOAW0.r060 <- ols(roll_pct~byoy+trans_YoY+change18m,
subset= helper=="POPNOAW0_r060",
na.action = na.exclude,
data = modelready)
OAW0 <- fastbw(olsOAW0.r060, rule="p", type="residual", sls= 0.05)
vec <- as.vector(OAW0$names.kept, mode="any")
b <- paste(vec, sep ="+") ##I even tried b <- paste(OAW0$names.kept, sep="+")
bestp.OAW0.r060 <- lm(roll_pct ~ b ,
data = modelready,
subset = helper =="POPNOAW0_r060",
na.action = na.exclude)
Ich bin neu in R und noch nicht gezogenen steilen Lernkurve, so entschuldigen für offensichtliche Programmier-Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist fast da. Sie müssen nur
paste
die gesamte Formel zusammen, so etwas wie dieses:zwingen, es zu einer tatsächlichen Formel mit
as.formula
und dann pass , dass zulm
. Technisch, denke ichlm
möglicherweise zwingen eine Zeichenkette selbst, aber die Nötigung selbst ist in der Regel sicherer. (Einige Funktionen, die erwarten, dass die Formeln nicht aus dem Zwang für Sie, werden andere.)hpi
in Anführungszeichen in der zweiten Zeile. Geben Siehpi.form
an die Konsole und du wirst sehen, warum diese falsch ist.paste("roll_pct~", "hpi", sep = "")
eher alspaste("roll_pct~", hpi, sep = "")
wie ich bereits erwähnt habe in meiner Antwort.aggregate
ist einer der Fälle, wo Sie brauchen, um zu zwingen es, sich überas.formula
.Würden Sie wirklich brauchen, zu verwenden Zusammenbruch statt der seb bei der Definition von b ist.
Dann können Sie es in joran Antwort
oder nutzen Sie einfach:
Ich lief in ähnliche Frage heute, wenn Sie wollen, um es noch allgemeiner, wo Sie noch nicht behoben haben Klasse Namen, die Sie verwenden können,
Davon ausgegangen, dass Sie Klasse haben, Variablen oder der abhängigen Variablen in der ersten Spalte aber die Indizierung kann einfach gewechselt werden, um Letzte Spalte:
Dann weiter mit
lm
mit:Wenn Sie auf der Suche nach etwas weniger ausführlich:
Hier ist es in einer Funktion:
nur zu vereinfachen und zu sammeln über Antworten, basierend auf einer Funktion
Verwendet werden: