Проблемы с кодом в вопросе:
- в R обычно лучше не использовать циклы во-первых
- условно i используется для последовательного индекса так что это неправильный выбор имени для использования для уровней
- тело l oop не делает никаких поднаборов, поэтому он будет присваивать одинаковый результат на каждой итерации
- сообщений для У SO должны быть воспроизводимые данные, и вопрос не включает это, а скорее ссылается на объекты без определения их содержания. Пожалуйста, прочтите инструкции вверху страницы тега r . Ниже мы использовали встроенный набор данных радужной оболочки для воспроизводимости.
Вот несколько подходов, использующих встроенный кадр данных радужной оболочки для воспроизводимости. Каждый из них приводит к именованному списку, где имена являются уровнями видов.
1) Аргумент подмножества lm Map
над уровнями, дающими список:
sublm <- function(x) lm(Petal.Width ~ Sepal.Width, iris, subset = Species == x)
levs <- levels(iris$Species)
Map(sublm, levs)
2) l oop sublm
и levs
от (1).
L <- list()
for(s in levs) L[[s]] <- sublm(s)
3) nlme или используйте lmList от nlme
library(nlme)
L3 <- mList(Petal.Width ~ Sepal.Width | Species, iris)
coef(L3)
summary(L3)