Используя встроенный anscombe
фрейм данных, имеющий столбцы x1
, x2
, x3
, x4
, y1
, y2
, y3
, y4
, предположим, что мы хотим регрессировать y1
по каждому из x1
, x2
, x3
, x4
по отдельности.
Сначала создайте символьный вектор из имен независимых переменных xnames
и используйте lapply
для запуска указанного run_lm
над ним. Эта функция вставляет необходимую формулу и выполняет lm
, возвращая объект класса "lm"
. L
, результат - список таких объектов, по одному для каждой регрессии.
Пакеты не используются.
xnames <- names(anscombe)[1:4]
run_lm <- function(nm) lm(paste("y1 ~", nm), anscombe)
L <- lapply(xnames, run_lm)
Альтернативно, эта более короткая версия run_lm
также будет работать с вышеуказанным lapply
, но строка вывода Call:
не так хороша:
run_lm <- function(nm) lm(anscombe[c("y1", nm)])