我正在尝试使用dplyr运行逐步回归,但会导致以下错误:
Error in as.data.frame.default(data) : cannot coerce class ‘c("glm", "lm")’ to a data.frame
glm运作良好,但是当代码尝试将步骤结果保存到数据帧时,会发生错误。
我检查了函数glm和函数step的类与“ c(glm,lm)”相同。但是只有分步功能不起作用。
我尝试了几种方法来纠正此错误,类似于do语句,map2(向data传递数据参数),但是没有任何效果。
更多细节..当我运行此代码时:
...
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>
我正在尝试在此第4列(下一个模型列)中添加“步骤”结果。
但是当我尝试运行下一个代码(添加stepm变量)
第二个代码:
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(模型)= class(stepm)= c(“ glm”,“ lm”)但只有stepm不接受并丢弃错误。
所以,我很困惑。有人知道这个问题吗?
先谢谢你
我正在尝试使用dplyr运行逐步回归,但是会导致以下错误:as.data.frame.default(data)中的错误:无法强制类'c(“ glm”,“ lm”)'到data.frame glm效果很好,...
我也对此错误的原因感到困惑,但是我从[here] [1]得到了一个线索,并尝试将glm
包装在do.call
中