Quando uso broom:::glance
nel seguente modo:Usando `scopa ::: glance` in un flusso di lavoro dplyr con un singolo oggetto lm fallisce
library(dplyr)
library(broom)
mtcars %>% do(model = lm(mpg ~ wt, .)) %>% glance(model)
ottengo
Error in complete.cases(x) : invalid 'type' (list) of argument
Tuttavia, quando ho aggiungere un group_by
:
mtcars %>% group_by(am) %>% do(model = lm(mpg ~ wt, .)) %>% glance(model)
non dare i risultati sperati:
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
Mi manca qualcosa qui, o è un errore in dplyr/broom?
Potrebbe essere correlato a un elenco di lunghezza 1? 'library (tidyr); unnest (lista (mtcars, mtcars), gr)%>% group_by (gr)%>% do (modello = lm (mpg ~ wt,.))%>% glance (modello)' funziona – akrun
Sembra infatti che non funzioni quando l'elenco di output di 'do' è solo un elenco di lunghezza uno. –
Buona cattura: è perché 'do' su un tbl_df non raggruppato non restituisce un' rowwise_df', quindi il metodo 'glance.rowwise_df' non viene applicato. Ho aperto [un problema per questo] (https://github.com/dgrtwo/broom/issues/77) e l'ho risolto a breve! –