3

.key被弃用之前,我这样做了:

library(tidyverse)

mtcars %>% group_by(cyl) %>% nest(.key = "my_name")

的帮助nest()指出,现在这是使用 tidy select 执行的,但我不知道如何。

4

3 回答 3

2

您可以使用 1.0.0 中的新nest_by功能,dplyr其工作方式类似于您之前使用的nest.

library(dplyr)
mtcars %>% group_by(cyl) %>% nest_by(.key = "my_name")

#   cyl             my_name
#  <dbl> <list<tbl_df[,10]>>
#1     4           [11 × 10]
#2     6            [7 × 10]
#3     8           [14 × 10]

您也可以在不分组的情况下执行相同的操作。

mtcars %>% nest_by(cyl, .key = "my_name")
于 2020-06-10T01:04:49.673 回答
2

您可以使用group_cols()来引用分组变量:

mtcars %>% group_by(cyl) %>% nest(my_name = !group_cols())
#> # A tibble: 3 x 2
#> # Groups:   cyl [3]
#>     cyl my_name
#>   <dbl> <list>
#> 1     6 <tibble [7 × 10]>
#> 2     4 <tibble [11 × 10]>
#> 3     8 <tibble [14 × 10]>

mtcars %>% nest(my_name = !cyl)
#> # A tibble: 3 x 2
#> # Groups:   cyl [3]
#>     cyl my_name
#>   <dbl> <list>
#> 1     6 <tibble [7 × 10]>
#> 2     4 <tibble [11 × 10]>
#> 3     8 <tibble [14 × 10]>
于 2020-06-10T05:54:41.570 回答
1

名称可以直接在nest的参数中提供:

mtcars %>% nest( my_name = -cyl )    # Nest by everything except cyl
#  # A tibble: 3 x 2
#      cyl my_name
#    <dbl> <list>
#  1     6 <tibble [7 × 10]>
#  2     4 <tibble [11 × 10]>
#  3     8 <tibble [14 × 10]>
于 2020-06-09T21:15:24.577 回答