Легко group_by
уникальные значения переменной:
library(tidyverse)
library(gapminder)
gapminder %>%
group_by(year)
Если бы мы хотели создать идентификатор группы, просто чтобы показать нам, какими будут группы:
gapminder %>%
select(year) %>%
distinct %>%
mutate(group = group_indices(., year))
A tibble: 12 x 2
year group
<int> <int>
1 1952 1
2 1957 2
3 1962 3
4 1967 4
5 1972 5
6 1977 6
7 1982 7
8 1987 8
9 1992 9
10 1997 10
11 2002 11
12 2007 12
Но что, если я хочу сгруппировать по парам ("группа2"), триплетам ("группа3") и т. Д. Последовательных лет?Как я мог произвести следующий тиббл, используя dplyr
/ tidyverse
?
A tibble: 12 x 2
year group group2 group3 group5
<int> <int> <int> <int> <int>
1 1952 1 1 1 1
2 1957 2 1 1 1
3 1962 3 2 1 1
4 1967 4 2 2 1
5 1972 5 3 2 1
6 1977 6 3 2 2
7 1982 7 4 3 2
8 1987 8 4 3 2
9 1992 9 5 3 2
10 1997 10 5 4 2
11 2002 11 6 4 3
12 2007 12 6 4 3