J'essaie de construire un modèle de régression avec lm (...). Mon jeu de données possède de nombreuses fonctionnalités (> 50). Je ne veux pas écrire mon code en tant que lm(output~feature1+feature2+feature3+...+feature70)
. Je me demandais quelle est la notation abrégée pour écrire ce code.
Vous pouvez utiliser .
Comme décrit dans la page d'aide pour formula
. Le .
Représente "toutes les colonnes qui ne sont pas autrement dans la formule".
lm(output ~ ., data = myData)
.
Alternativement, construisez la formule manuellement avec paste
. Cet exemple provient de la page d'aide de as.formula()
:
xnam <- paste("x", 1:25, sep="")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))
Vous pouvez ensuite insérer cet objet dans la fonction de régression: lm(fmla, data = myData)
.
Pourrait également essayer des choses comme:
lm(output ~ myData[,2:71], data=myData)
En supposant que la sortie est la première colonne feature1: feature70 sont les 70 colonnes suivantes.
Ou
features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)
Est probablement plus intelligent car peu importe où se trouvent vos données dans les colonnes.
Pourrait causer des problèmes s'il y a des lignes supprimées pour les NA ...