Я пытаюсь создать регрессионную модель с помощью lm (...). В моем наборе данных есть много возможностей ( > 50). Я не хочу писать свой код как lm(output~feature1+feature2+feature3+...+feature70)
. Мне было интересно, что такое короткая ручная запись для написания этого кода.
Короткий вызов формулы для многих переменных при построении модели
Ответ 1
Вы можете использовать .
, как описано на странице справки для formula
. .
означает "все столбцы, не имеющие отношения к формуле".
lm(output ~ ., data = myData)
.
В качестве альтернативы, постройте формулу вручную с помощью paste
. Этот пример приведен на странице справки as.formula()
:
xnam <- paste("x", 1:25, sep="")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))
Затем вы можете вставить этот объект в функцию регрессии: lm(fmla, data = myData)
.
Ответ 2
Также можно попробовать такие вещи, как:
lm(output ~ myData[,2:71], data=myData)
Предполагая, что вывод является первым признаком столбца1: feature70 - это следующие 70 столбцов.
или
features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)
Возможно, умнее, поскольку не имеет значения, где среди ваших данных столбцы.
Может возникнуть проблема, если строка удалена для NA, хотя...