Как поместить glm () в структуру, похожую на lmList? - PullRequest
0 голосов
/ 29 января 2020

Ради воспроизведения я немного манипулировал данными радужной оболочки:

data(iris)
View(iris)
library("dplyr")
library("magrittr")
library("tidyverse")
iris <- filter(iris, Petal.Width<1)
iris <- mutate(iris,
               Species2 = case_when(
                 Petal.Width == 0.1 ~ "setosa",
                 Petal.Width != 0.1 ~ "versicolor"))

Я смог сделать что-то подобное для lm():

iris %>% group_by(Species2) %>% 
do(tidy(lm(Petal.Width ~ Sepal.Width*Sepal.Length, data = .)))

fit1 <- nlme::lmList((Petal.Width) ~ Sepal.Width*Sepal.Length 
| Species2, data = iris)
do.call(stargazer, c(fit1, type = "text"))

Я хочу чтобы сделать то же самое для glm ():

iris %>% group_by(Species2) %>%
  do(tidy(glm(Petal.Width ~ Sepal.Width*Sepal.Length, data = ., 
family=quasibinomial)))

fit1 <- nlme::lmList((Petal.Width) ~ Sepal.Width*Sepal.Length | 
Species2, data = iris)
# this needs to be a lmList for glm and glmlist() does not seem to work

do.call(stargazer, c(fit1, type = "text"))

В настоящее время результаты lm появляются, когда я использую nlme :: lmList. Я хочу, чтобы результаты glm были в таблице.

1 Ответ

0 голосов
/ 29 января 2020

Потенциальным решением этой проблемы может быть подмножество GLM:

model = glm(Petal.Width ~ Sepal.Width*Sepal.Length, data = iris, family=quasibinomial,
            subset = type == "setosa")

model1 = glm(Petal.Width ~ Sepal.Width*Sepal.Length, data = iris, family=quasibinomial,
            subset = type == "veriscolor")

stargazer(model, model1)

...