Создание нескольких линейных моделей одновременно из аккуратных данных в R - PullRequest
0 голосов
/ 28 июня 2018

У меня есть набор данных, который выглядит следующим образом.

id  samediff  gainloss  factor  value
1   S         G         give    3
1   S         G         impact  4
2   S         L         give    2
2   S         L         impact  5   
3   D         G         give    1
3   D         G         impact  4
4   D         L         give    3
4   D         L         impact  5 

Я хотел бы создать линейную модель для каждого фактора, чтобы проверить взаимодействие между переменными samediff и переменными gainsess. Когда я пробую следующий код, вывод, который я получаю, включает только коэффициенты и не включает полную информацию для каждой линейной модели (в частности, информацию, предоставленную при написании сводки (lm) для модели).

Попытка 1:

lm <- dff %>%
  split(.$factor) %>%
  map(~lm(value~(samediff*gainloss), .x))
lm

Попытка 2:

lm2 <- dff %>% 
  group_by(factor) %>%
  summarise(lm = list(lm(value~(samediff*gainloss))))
lm3<-lm2$lm; names(lm3) <- lm2$factor
lm3

Полный набор данных включает в себя гораздо больше факторов, чем указано здесь. Как мне отрегулировать это так, чтобы я получал итоговый результат () для каждой произведенной модели?

1 Ответ

0 голосов
/ 28 июня 2018

Если вы можете сделать с базой R, вот один из способов.

lm_list <- lapply(split(dff, dff$factor), function(DF) lm(value ~ samediff*gainloss, DF))

Тогда вы можете запустить, например,

lapply(lm_list, coef)
lapply(lm_list, summary)
...