Sie können auch eine Kombination der Funktionen formulaund pasteverwenden.
Setup-Daten : Stellen Sie sich vor, wir haben einen data.frame, der die Prädiktorvariablen x1to x100und unsere abhängige Variable enthält y, aber auch eine störende Variable asdfasdf. Auch die Prädiktorvariablen sind in einer solchen Reihenfolge angeordnet, dass sie nicht alle im data.frame zusammenhängen.
Data <- data.frame(matrix(rnorm(102 * 200), ncol=102))
names(Data) <- c(paste("x", 1:50, sep=""),
"asdfasdf", "y", paste("x", 51:100, sep=""))
Stellen Sie sich auch vor, dass Sie eine Zeichenfolge haben, die die Namen der Prädiktorvariablen enthält. In diesem Fall kann dies einfach mit der pasteFunktion erstellt werden. In anderen Situationen kann jedoch auch grepein anderer Ansatz verwendet werden, um diese Zeichenfolge abzurufen.
PredictorVariables <- paste("x", 1:100, sep="")
Ansatz anwenden : Wir können dann eine Formel wie folgt konstruieren:
Formula <- formula(paste("y ~ ",
paste(PredictorVariables, collapse=" + ")))
lm(Formula, Data)
- Das
collapseArgument wird +zwischen die Prädiktorvariablen eingefügt
formulakonvertiert den String in ein Objekt der Klassenformel, das für die lmFunktion geeignet ist.
Im Allgemeinen verwende ich die folgende Funktion ziemlich regelmäßig, wenn ich die Prädiktorvariablen als Vektor von Variablennamen bereitstellen möchte.
regression <- function(dv, ivs, data) {
# run a linear model with text arguments for dv and ivs
iv_string <- paste(ivs, collapse=" + ")
regression_formula <- as.formula(paste(dv, iv_string, sep=" ~ "))
lm(regression_formula, data)
}
Z.B,
regression("y", PredictorVariables, Data)