También puede usar una combinación de las funciones formulay paste.
Los datos de configuración : Imaginemos que tenemos un hoja.de.datos que contiene las variables de predicción x1a x100y la variable dependiente y, sino que también es una variable estorbo asdfasdf. Además, las variables predictoras se organizan en un orden tal que no todas son contiguas en el data.frame.
Data <- data.frame(matrix(rnorm(102 * 200), ncol=102))
names(Data) <- c(paste("x", 1:50, sep=""),
"asdfasdf", "y", paste("x", 51:100, sep=""))
Imagine también que tiene una cadena que contiene los nombres de las variables predictoras. En este caso, esto se puede crear fácilmente usando la pastefunción, pero en otras situaciones, grepo se puede usar algún otro enfoque para obtener esta cadena.
PredictorVariables <- paste("x", 1:100, sep="")
Aplicar enfoque : luego podemos construir una fórmula de la siguiente manera:
Formula <- formula(paste("y ~ ",
paste(PredictorVariables, collapse=" + ")))
lm(Formula, Data)
- el
collapseargumento se inserta +entre las variables predictoras
formulaconvierte la cadena en un objeto de fórmula de clase adecuada para la lmfunción.
De manera más general, utilizo la siguiente función con bastante regularidad cuando deseo suministrar las variables predictoras como vector de nombres de variables.
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)
}
P.ej,
regression("y", PredictorVariables, Data)