Я пытаюсь запустить пошаговую регрессию с использованием dplyr, но это приводит к следующей ошибке:
Error in as.data.frame.default(data) : cannot coerce class ‘c("glm", "lm")’ to a data.frame
glm работает хорошо, но когда код пытается сохранить результат шага в В кадре данных возникает ошибка.
Я проверил, что класс функции glm и шаг функции совпадают с "c (glm, lm)". Но только функция step не работает.
Я пробовал несколько способов исправить эту ошибку, например, оператор do, map2 (передача данных в качестве параметра данных), но ничего не работает.
подробнее ... при запуске этого кода:
...
group_by(ITEM_CODE) %>%
nest() %>%
mutate(model = map(data, ~ glm(formula_full,family=gaussian(),na.action=na.omit,data=.x))
) %>%
ungroup()
результаты выглядят следующим образом ... здесь, glm возвращает c ("glm", "lm")
> M_CODE data model
> 0034019 <tibble> <S3: glm>
> 0040726 <tibble> <S3: glm>
> 0057446 <tibble> <S3: glm>
Я пытаюсь добавить результаты 'step' в 4-й столбец этого (следующий столбец модели).
Но когда я пытаюсь запустить следующий код (добавить переменную stepm)
2-й код:
group_by(ITEM_CODE) %>%
nest() %>%
mutate(model = map(data, ~ glm(formula_full,family=gaussian(),na.action=na.omit,data=.x))
,stepm = map(model, ~ step(.x, direction = "both", trace = 0)) # <-- Error point!
) %>%
ungroup()
, тогда возникает ошибка, о которой я упоминал сначала.
На самом деле, class (model) = class (stepm) = c ("glm", "lm"), но только stepm не принят и пропущена ошибка ..
Итак, Я очень смущен .. Кто-нибудь знает об этой проблеме ..?
Спасибо заранее