Это сокращение для анонимной функции, которая применяется к каждой группе. .x
автоматически вводится в анонимных функциях стиля purrr
(и дополнительно .y
для функций map2
).
Но вы также можете использовать традиционные анонимные функции:
mtcars %>%
group_by(cyl) %>%
group_map(., function(x) head(x, 2L)) # the `.` is just for illustration and can be omitted with the %>%
Или вы можете написать именованную функцию и использовать ее в group_map()
:
new_fun <- function(x) {
head(x, 2L)
}
mtcars %>%
group_by(cyl) %>%
group_map(new_fun)
Показанная вами функция (head(.x, 2L)
) применяется один раз для каждой группы данных. Вы можете проверить, сколько у вас групп:
mtcars %>%
group_by(cyl) %>%
n_groups()
#> [1] 3
Для каждой из этих групп напечатаны первые две строки данных:
mtcars %>%
group_by(cyl) %>%
group_map(~ head(.x, 2L))
#> [[1]]
#> # A tibble: 2 x 10
#> mpg disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 22.8 108 93 3.85 2.32 18.6 1 1 4 1
#> 2 24.4 147. 62 3.69 3.19 20 1 0 4 2
#>
#> [[2]]
#> # A tibble: 2 x 10
#> mpg disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 160 110 3.9 2.88 17.0 0 1 4 4
#>
#> [[3]]
#> # A tibble: 2 x 10
#> mpg disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 18.7 360 175 3.15 3.44 17.0 0 0 3 2
#> 2 14.3 360 245 3.21 3.57 15.8 0 0 3 4