È inoltre possibile utilizzare una combinazione delle funzioni formulae paste.
Dati di configurazione : Immaginiamo che abbiamo un data.frame che contiene le variabili predittive x1per x100e la nostra variabile dipendente y, ma che c'è anche una variabile fastidio asdfasdf. Anche le variabili predittive sono disposte in un ordine in modo tale che non siano tutte contigue nel 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=""))
Immagina anche di avere una stringa contenente i nomi delle variabili predittive. In questo caso, questo può essere facilmente creato usando la pastefunzione, ma in altre situazioni, grepo qualche altro approccio potrebbe essere usato per ottenere questa stringa.
PredictorVariables <- paste("x", 1:100, sep="")
Applica approccio : possiamo quindi costruire una formula come segue:
Formula <- formula(paste("y ~ ",
paste(PredictorVariables, collapse=" + ")))
lm(Formula, Data)
- l'
collapseargomento si inserisce +tra le variabili predittive
formulaconverte la stringa in un oggetto di formula di classe adatto alla lmfunzione.
Più in generale, uso la seguente funzione abbastanza regolarmente quando voglio fornire una variabile predittore come vettore di nomi di variabili.
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)
}
Per esempio,
regression("y", PredictorVariables, Data)