tidyverse / dplyr

dplyr: A grammar of data manipulation
https://dplyr.tidyverse.org/
Other
4.76k stars 2.12k forks source link

slice (max, min etc..) inconsistent with unnested table #5457

Closed mwilson19 closed 4 years ago

mwilson19 commented 4 years ago

When nesting models then unnesting the slice function doesn't appear to be working, however on the last bit of code below add as_tibble() %>% and it works. Not sure why that is...

Updated all packages and restarted R (tidyverse, tidymodels)

library(dslabs)
data(gapminder)

gap_nested <- gapminder %>% 
  group_by(country) %>% 
  nest()

gap_models <- gap_nested %>%
    mutate(model = map(data, ~lm(formula = life_expectancy~year, data = .x)))

model_perf_nested <- gap_models %>% 
    mutate(fit = map(model, ~glance(.x)))

model_perf <- model_perf_nested %>% 
    unnest(fit)

model_perf %>% 
  slice_max(n = 5, order_by = r.squared)
romainfrancois commented 4 years ago

I'm getting this, so I suppose it is fixed. Please use reprex to prepare example code, I had to load tidyverse and broom in addition to the code you shared to make it work:

library(tidyverse)
library(broom)
library(dslabs)

data(gapminder)

gap_nested <- gapminder %>% 
  group_by(country) %>% 
  nest()

gap_models <- gap_nested %>%
  mutate(model = map(data, ~lm(formula = life_expectancy~year, data = .x)))

model_perf_nested <- gap_models %>% 
  mutate(fit = map(model, ~glance(.x)))

model_perf <- model_perf_nested %>% 
  unnest(fit)

model_perf %>% 
  slice_max(n = 5, order_by = r.squared)
#> # A tibble: 185 x 15
#> # Groups:   country [185]
#>    country data  model r.squared adj.r.squared sigma statistic  p.value    df
#>    <fct>   <lis> <lis>     <dbl>         <dbl> <dbl>     <dbl>    <dbl> <dbl>
#>  1 Albania <tib… <lm>      0.963         0.963 0.772    1443.  3.72e-41     1
#>  2 Algeria <tib… <lm>      0.938         0.937 2.53      828.  7.84e-35     1
#>  3 Angola  <tib… <lm>      0.989         0.989 0.698    5091.  6.69e-56     1
#>  4 Antigu… <tib… <lm>      0.938         0.937 0.977     828.  7.64e-35     1
#>  5 Argent… <tib… <lm>      0.983         0.982 0.479    3103.  4.58e-50     1
#>  6 Armenia <tib… <lm>      0.288         0.275 1.57       22.2 1.70e- 5     1
#>  7 Aruba   <tib… <lm>      0.882         0.880 0.964     412.  3.28e-27     1
#>  8 Austra… <tib… <lm>      0.983         0.983 0.540    3240.  1.42e-50     1
#>  9 Austria <tib… <lm>      0.989         0.989 0.430    4949.  1.45e-55     1
#> 10 Azerba… <tib… <lm>      0.679         0.673 1.54      116.  3.48e-15     1
#> # … with 175 more rows, and 6 more variables: logLik <dbl>, AIC <dbl>,
#> #   BIC <dbl>, deviance <dbl>, df.residual <int>, nobs <int>

Created on 2020-08-10 by the reprex package (v0.3.0.9001)

Session info ``` r sessioninfo::session_info() #> ─ Session info ─────────────────────────────────────────────────────────────── #> setting value #> version R version 4.0.0 (2020-04-24) #> os macOS Catalina 10.15.6 #> system x86_64, darwin17.0 #> ui X11 #> language (EN) #> collate en_US.UTF-8 #> ctype en_US.UTF-8 #> tz Europe/Paris #> date 2020-08-10 #> #> ─ Packages ─────────────────────────────────────────────────────────────────── #> package * version date lib source #> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.0.0) #> backports 1.1.8 2020-06-17 [1] CRAN (R 4.0.0) #> broom * 0.7.0 2020-07-09 [1] CRAN (R 4.0.0) #> cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.0.0) #> cli 2.0.2 2020-02-28 [1] CRAN (R 4.0.0) #> colorspace 1.4-1 2019-03-18 [1] CRAN (R 4.0.0) #> crayon 1.3.4.9000 2020-07-01 [1] Github (r-lib/crayon@dcf6d44) #> DBI 1.1.0 2019-12-15 [1] CRAN (R 4.0.0) #> dbplyr 1.4.3.9000 2020-05-14 [1] Github (tidyverse/dbplyr@f96af59) #> digest 0.6.25 2020-02-23 [1] CRAN (R 4.0.0) #> dplyr * 1.0.1.9001 2020-08-10 [1] local #> dslabs * 0.7.3 2019-12-13 [1] CRAN (R 4.0.2) #> ellipsis 0.3.1 2020-05-15 [1] CRAN (R 4.0.1) #> evaluate 0.14 2019-05-28 [1] CRAN (R 4.0.0) #> fansi 0.4.1 2020-01-08 [1] CRAN (R 4.0.0) #> forcats * 0.5.0 2020-03-01 [1] CRAN (R 4.0.0) #> fs 1.4.2 2020-06-30 [1] CRAN (R 4.0.0) #> generics 0.0.2 2018-11-29 [1] CRAN (R 4.0.0) #> ggplot2 * 3.3.2 2020-06-19 [1] CRAN (R 4.0.0) #> glue 1.4.1 2020-05-13 [1] CRAN (R 4.0.0) #> gtable 0.3.0 2019-03-25 [1] CRAN (R 4.0.0) #> haven 2.3.1 2020-06-01 [1] CRAN (R 4.0.0) #> highr 0.8 2019-03-20 [1] CRAN (R 4.0.0) #> hms 0.5.3 2020-01-08 [1] CRAN (R 4.0.0) #> htmltools 0.5.0 2020-06-16 [1] CRAN (R 4.0.0) #> httr 1.4.2 2020-07-20 [1] CRAN (R 4.0.2) #> jsonlite 1.7.0 2020-06-25 [1] CRAN (R 4.0.0) #> knitr 1.29 2020-06-23 [1] CRAN (R 4.0.0) #> lifecycle 0.2.0 2020-03-06 [1] CRAN (R 4.0.0) #> lubridate 1.7.9 2020-06-08 [1] CRAN (R 4.0.0) #> magrittr 1.5 2014-11-22 [1] CRAN (R 4.0.0) #> modelr 0.1.8 2020-05-19 [1] CRAN (R 4.0.1) #> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.0.0) #> pillar 1.4.6 2020-07-10 [1] CRAN (R 4.0.0) #> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.0.0) #> purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.0.0) #> R6 2.4.1 2019-11-12 [1] CRAN (R 4.0.0) #> Rcpp 1.0.5 2020-07-06 [1] CRAN (R 4.0.0) #> readr * 1.3.1 2018-12-21 [1] CRAN (R 4.0.0) #> readxl 1.3.1 2019-03-13 [1] CRAN (R 4.0.0) #> reprex 0.3.0.9001 2020-06-19 [1] Github (tidyverse/reprex@d898823) #> rlang 0.4.7 2020-07-09 [1] CRAN (R 4.0.0) #> rmarkdown 2.3 2020-06-18 [1] CRAN (R 4.0.0) #> rstudioapi 0.11 2020-02-07 [1] CRAN (R 4.0.0) #> rvest 0.3.6 2020-07-25 [1] CRAN (R 4.0.2) #> scales 1.1.1 2020-05-11 [1] CRAN (R 4.0.0) #> sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 4.0.0) #> stringi 1.4.6 2020-02-17 [1] CRAN (R 4.0.0) #> stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.0.0) #> styler 1.3.2 2020-02-23 [1] CRAN (R 4.0.0) #> tibble * 3.0.3 2020-07-10 [1] CRAN (R 4.0.0) #> tidyr * 1.1.1 2020-07-31 [1] CRAN (R 4.0.0) #> tidyselect 1.1.0 2020-05-11 [1] CRAN (R 4.0.0) #> tidyverse * 1.3.0 2019-11-21 [1] CRAN (R 4.0.0) #> utf8 1.1.4 2018-05-24 [1] CRAN (R 4.0.0) #> vctrs 0.3.2 2020-07-15 [1] CRAN (R 4.0.2) #> withr 2.2.0 2020-04-20 [1] CRAN (R 4.0.0) #> xfun 0.16 2020-07-24 [1] CRAN (R 4.0.2) #> xml2 1.3.2 2020-04-23 [1] CRAN (R 4.0.0) #> yaml 2.2.1 2020-02-01 [1] CRAN (R 4.0.0) #> #> [1] /Users/romainfrancois/.R/library/4.0 #> [2] /Library/Frameworks/R.framework/Versions/4.0/Resources/library ```