Новые объекты для таблицы в регрессионном цикле - PullRequest
0 голосов
/ 11 января 2019

Я новичок в R и пытаюсь зациклить регрессии по группам. Для моих данных у меня есть 13 групп, и я хотел бы создать 13 объектов - результат регрессии для каждой группы, чтобы я мог поместить все результаты регрессии в таблицу. Вот что я попробовал:

for (i in 1:13) {groupi = lm(Yvariable ~ Xvariables,
           data = dataset,
           subset = dataset$group== i )}

Так что у меня было бы 13 объектов group'i ', каждый из которых является результатом регрессии для помещения в таблицу. СПАСИБО! * * 1004

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Рассмотрим by, объектно-ориентированную оболочку для tapply, предназначенную для подстановки фреймов данных по факторам и выполнения операций над подмножествами. Часто он может заменить split + lapply на более упорядоченный вызов:

reg_list <- by(dataset, dataset$group, function(sub)
                summary(lm(Yvariable ~ Xvariables,
                           data = sub)
                       )
              )

Обратите внимание, что приведенный выше список содержит только именованные списки результатов регрессии. Дальнейшая работа необходима для извлечения оценок каждой модели путем расширения function.

0 голосов
/ 12 января 2019

Если я правильно понял вашу проблему, для этого есть специальная команда: lmList из пакета nlme. Попробуйте это:

    library(nlme)
    your.result.list <- lmList(Yvariable ~ Xvariables | group, data = dataset)
    your.result.list

Объект your.result.list относится к классу lmList, поэтому это список из 13 элементов, которые вы хотели бы иметь в качестве отдельных объектов. У него есть общая опция печати, которая печатает вам таблицу коэффициентов в консоль. Так может это уже то, что ты хочешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...