Подтвердить что ты не робот

Короткий вызов формулы для многих переменных при построении модели

Я пытаюсь создать регрессионную модель с помощью lm (...). В моем наборе данных есть много возможностей ( > 50). Я не хочу писать свой код как lm(output~feature1+feature2+feature3+...+feature70). Мне было интересно, что такое короткая ручная запись для написания этого кода.

4b9b3361

Ответ 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, хотя...