如何在将年份设置为单独值的数据集中对十年的观察结果进行分组和计数?

How can I group and count observations made by decade in a dataset that has the years set as individual values?

我有以下数据集:

# A tibble: 90 × 2
   decade     n
    <dbl> <int>
 1   1930    13
 2   1931    48
 3   1932    44
 4   1933    76
 5   1934    73
 6   1935    63
 7   1936    54
 8   1937    51
 9   1938    41
10   1939    42
# … with 80 more rows

更多的年份一直持续到 2010 年。我希望按十年“分组”,例如 1930 年代、1940 年代等...,并在另一列中列出该十年结束前每年的 n 数。

例如:

# A tibble: 90 × 2
   decade     n
    <dbl>        <int>
 1   1930-1939    449
 2   1940-1949    516 

谢谢!

我们可以使用模运算符 %%:

library(dplyr)

df %>% 
  group_by(decade = decade - decade %% 10) %>% 
  summarise(n = sum(n))
  decade     n
   <dbl> <int>
1   1930   505