仅在dpl yr程序中,在glm之后不执行步进功能

问题描述 投票:0回答:1

我正在尝试使用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(s​​tepm)= c(“ glm”,“ lm”)但只有stepm不接受并丢弃错误。

所以,我很困惑。有人知道这个问题吗?

先谢谢你

我正在尝试使用dplyr运行逐步回归,但是会导致以下错误:as.data.frame.default(data)中的错误:无法强制类'c(“ glm”,“ lm”)'到data.frame glm效果很好,...

r dplyr glm step
1个回答
0
投票

我也对此错误的原因感到困惑,但是我从[here] [1]得到了一个线索,并尝试将glm包装在do.call

© www.soinside.com 2019 - 2024. All rights reserved.