Skip to content

Instantly share code, notes, and snippets.

@yutannihilation
Created July 16, 2018 02:21
Show Gist options
  • Select an option

  • Save yutannihilation/3c1b14cd14f68e9f5a6ce105ff014559 to your computer and use it in GitHub Desktop.

Select an option

Save yutannihilation/3c1b14cd14f68e9f5a6ce105ff014559 to your computer and use it in GitHub Desktop.

参考

https://github.com/tidyverse/dplyr/blob/d3ded01ac854cbc847afcb1434f49118cea852e8/R/nest_by.R#L25-L33

使い方

group_by() %>% nest()のショートカット。↑のExamplesのコードがわかりやすいのでそのまま実行してみる。

_if()_at()はあるけど_all()はない。まあ当然か...

library(dplyr, warn.conflicts = FALSE)


starwars %>%
  nest_by(species, homeworld)
#> # A tibble: 58 x 3
#>    species  homeworld   data             
#>    <chr>    <chr>       <list>           
#>  1 <NA>     <NA>        <tibble [2 x 11]>
#>  2 <NA>     Naboo       <tibble [2 x 11]>
#>  3 <NA>     Umbara      <tibble [1 x 11]>
#>  4 Aleena   Aleen Minor <tibble [1 x 11]>
#>  5 Besalisk Ojom        <tibble [1 x 11]>
#>  6 Cerean   Cerea       <tibble [1 x 11]>
#>  7 Chagrian Champala    <tibble [1 x 11]>
#>  8 Clawdite Zolan       <tibble [1 x 11]>
#>  9 Droid    <NA>        <tibble [2 x 11]>
#> 10 Droid    Naboo       <tibble [1 x 11]>
#> # ... with 48 more rows

starwars %>%
  nest_by_at(vars(ends_with("_color")))
#> # A tibble: 67 x 4
#>    hair_color    skin_color       eye_color data             
#>    <chr>         <chr>            <chr>     <list>           
#>  1 <NA>          gold             yellow    <tibble [1 x 10]>
#>  2 <NA>          green            black     <tibble [1 x 10]>
#>  3 <NA>          green-tan, brown orange    <tibble [1 x 10]>
#>  4 <NA>          white, blue      red       <tibble [1 x 10]>
#>  5 <NA>          white, red       red       <tibble [1 x 10]>
#>  6 auburn        fair             blue      <tibble [1 x 10]>
#>  7 auburn, grey  fair             blue      <tibble [1 x 10]>
#>  8 auburn, white fair             blue-gray <tibble [1 x 10]>
#>  9 black         blue, grey       yellow    <tibble [1 x 10]>
#> 10 black         brown            brown     <tibble [1 x 10]>
#> # ... with 57 more rows

starwars %>%
  nest_by_if(is.numeric)
#> # A tibble: 82 x 4
#>    height  mass birth_year data             
#>     <int> <dbl>      <dbl> <list>           
#>  1     66    17        896 <tibble [1 x 10]>
#>  2     79    15         NA <tibble [1 x 10]>
#>  3     88    20          8 <tibble [1 x 10]>
#>  4     94    45         NA <tibble [1 x 10]>
#>  5     96    32         33 <tibble [1 x 10]>
#>  6     96    NA         NA <tibble [1 x 10]>
#>  7     97    32         NA <tibble [1 x 10]>
#>  8    112    40         NA <tibble [1 x 10]>
#>  9    122    NA         NA <tibble [1 x 10]>
#> 10    137    NA         NA <tibble [1 x 10]>
#> # ... with 72 more rows

Created on 2018-07-16 by the reprex package (v0.2.0).

Session info
devtools::session_info()
#> Session info -------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.5.1 (2018-07-02)
#>  system   x86_64, mingw32             
#>  ui       RTerm                       
#>  language (EN)                        
#>  collate  Japanese_Japan.932          
#>  tz       Asia/Tokyo                  
#>  date     2018-07-16
#> Packages -----------------------------------------------------------------
#>  package    * version     date       source                          
#>  assertthat   0.2.0       2017-04-11 CRAN (R 3.5.0)                  
#>  backports    1.1.2       2017-12-13 CRAN (R 3.5.0)                  
#>  base       * 3.5.1       2018-07-02 local                           
#>  bindr        0.1.1       2018-03-13 CRAN (R 3.5.0)                  
#>  bindrcpp   * 0.2.2       2018-03-29 CRAN (R 3.5.0)                  
#>  cli          1.0.0       2017-11-05 CRAN (R 3.5.0)                  
#>  compiler     3.5.1       2018-07-02 local                           
#>  crayon       1.3.4       2017-09-16 CRAN (R 3.5.0)                  
#>  datasets   * 3.5.1       2018-07-02 local                           
#>  devtools     1.13.6      2018-06-27 CRAN (R 3.5.0)                  
#>  digest       0.6.15      2018-01-28 CRAN (R 3.5.0)                  
#>  dplyr      * 0.7.99.9000 2018-07-16 local                           
#>  evaluate     0.10.1      2017-06-24 CRAN (R 3.5.0)                  
#>  fansi        0.2.3       2018-05-06 CRAN (R 3.5.1)                  
#>  glue         1.2.0       2017-10-29 CRAN (R 3.5.0)                  
#>  graphics   * 3.5.1       2018-07-02 local                           
#>  grDevices  * 3.5.1       2018-07-02 local                           
#>  htmltools    0.3.6       2017-04-28 CRAN (R 3.5.0)                  
#>  knitr        1.20.2      2018-05-10 local                           
#>  magrittr     1.5         2014-11-22 CRAN (R 3.5.0)                  
#>  memoise      1.1.0       2018-06-13 Github (hadley/memoise@06d16ec) 
#>  methods    * 3.5.1       2018-07-02 local                           
#>  pillar       1.3.0       2018-07-14 CRAN (R 3.5.1)                  
#>  pkgconfig    2.0.1       2017-03-21 CRAN (R 3.5.0)                  
#>  purrr        0.2.5       2018-05-29 CRAN (R 3.5.0)                  
#>  R6           2.2.2       2017-06-17 CRAN (R 3.5.0)                  
#>  Rcpp         0.12.17     2018-05-18 CRAN (R 3.5.0)                  
#>  rlang        0.2.1       2018-05-30 CRAN (R 3.5.0)                  
#>  rmarkdown    1.10        2018-06-11 CRAN (R 3.5.0)                  
#>  rprojroot    1.3-2       2018-01-03 CRAN (R 3.5.0)                  
#>  stats      * 3.5.1       2018-07-02 local                           
#>  stringi      1.2.3       2018-06-12 CRAN (R 3.5.0)                  
#>  stringr      1.3.1       2018-05-10 CRAN (R 3.5.0)                  
#>  tibble       1.4.2       2018-01-22 CRAN (R 3.5.0)                  
#>  tidyselect   0.2.4       2018-02-26 CRAN (R 3.5.0)                  
#>  tools        3.5.1       2018-07-02 local                           
#>  utf8         1.1.4       2018-05-24 CRAN (R 3.5.0)                  
#>  utils      * 3.5.1       2018-07-02 local                           
#>  withr        2.1.2       2018-06-26 Github (jimhester/withr@fe56f20)
#>  yaml         2.1.19      2018-05-01 CRAN (R 3.5.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment