首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在带有单个lm对象的dplyr工作流中使用‘`broom:glance`’失败

在带有单个lm对象的dplyr工作流中使用‘`broom:glance`’失败
EN

Stack Overflow用户
提问于 2015-08-27 13:52:37
回答 1查看 1.3K关注 0票数 8

当我以下列方式使用broom:::glance时:

代码语言:javascript
复制
library(dplyr)
library(broom)
mtcars %>% do(model = lm(mpg ~ wt, .)) %>% glance(model)

我得到了

代码语言:javascript
复制
Error in complete.cases(x) : invalid 'type' (list) of argument

但是,当我添加一个group_by

代码语言:javascript
复制
mtcars %>% group_by(am) %>% do(model = lm(mpg ~ wt, .)) %>% glance(model)

确实给出了预期的结果:

代码语言:javascript
复制
Source: local data frame [2 x 12]
Groups: am

  am r.squared adj.r.squared sigma statistic  p.value df logLik  AIC  BIC deviance df.residual
1  0     0.589         0.565  2.53      24.4 1.25e-04  2  -43.5 93.1 95.9    108.7          17
2  1     0.826         0.810  2.69      52.3 1.69e-05  2  -30.2 66.4 68.1     79.3          11

我是在这里遗漏了什么,还是在dplyr/broom中出现了错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 15:34:26

这是因为当在未分组的表上执行do时,会产生tbl_df而不是rowwise_df,这意味着rowwise_df使用了不同的方法。我已经在最新的开发版本中使用了fixed this,您现在可以这样做:

代码语言:javascript
复制
mtcars %>% do(model = lm(mpg ~ wt, .)) %>% glance(model)
#>   r.squared adj.r.squared    sigma statistic      p.value df    logLik
#> 1 0.7528328     0.7445939 3.045882  91.37533 1.293959e-10  2 -80.01471
#>        AIC      BIC deviance df.residual
#> 1 166.0294 170.4266 278.3219          30

我希望能尽快在CRAN上安装,或者你可以用devtools::install_github("dgrtwo/broom")安装。同时,还可以使用临时分组列来获取所需的行为:

代码语言:javascript
复制
mtcars %>%
    group_by(g = 1) %>%
    do(model = lm(mpg ~ wt, .)) %>% 
    glance(model)
#> Source: local data frame [1 x 12]
#> Groups: g
#> 
#>   g r.squared adj.r.squared    sigma statistic      p.value df    logLik
#> 1 1 0.7528328     0.7445939 3.045882  91.37533 1.293959e-10  2 -80.01471
#> Variables not shown: AIC (dbl), BIC (dbl), deviance (dbl), df.residual
#>   (int)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32251265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档