R如何将年份合并到周期中

R如何将年份合并到周期中,r,R,我想把几年分成五年。我有1986年至2016年的数据。基本上,我希望第一阶段包括1986-1991年,第二阶段1992-1996年,依此类推。有人对如何实现这一点有什么想法吗?下面是通过ifelse实现的方法: 说明性数据: set.seed(123) df <- data.frame( year = sample(1986:2016, 20)) 编辑: 另一种解决方案是通过dplyr: 首先定义一个带有周期限制的向量: limits <- c(1986, 1990, 1995

我想把几年分成五年。我有1986年至2016年的数据。基本上,我希望第一阶段包括1986-1991年,第二阶段1992-1996年,依此类推。有人对如何实现这一点有什么想法吗?

下面是通过
ifelse
实现的方法:

说明性数据:

set.seed(123)
df <- data.frame(
  year = sample(1986:2016, 20))
编辑

另一种解决方案是通过
dplyr

首先定义一个带有周期限制的向量:

limits <- c(1986, 1990, 1995, 2000, 2005, 2010, 2016)
结果:

df
   year  period
1  1994 period2
2  2009 period5
3  1997 period3
4  2010 period5
5  2011 period6
6  1987 period1
7  1999 period3
8  2007 period5
9  1998 period3
10 1996 period3
11 2006 period5
12 1995 period2
13 2008 period5
14 2015 period6
15 2012 period6
16 2000 period3
17 1989 period1
18 1986 period1
19 1990 period1
20 2014 period6
df1
# A tibble: 20 x 3
# Groups:   group [6]
    year period    group
   <int> <list>    <int>
 1  1994 <lgl [1]>     2
 2  2009 <lgl [1]>     5
 3  1997 <lgl [1]>     3
 4  2010 <lgl [1]>     6
 5  2011 <lgl [1]>     6
 6  1987 <lgl [1]>     1
 7  1999 <lgl [1]>     3
 8  2007 <lgl [1]>     5
 9  1998 <lgl [1]>     3
10  1996 <lgl [1]>     3
11  2006 <lgl [1]>     5
12  1995 <lgl [1]>     3
13  2008 <lgl [1]>     5
14  2015 <lgl [1]>     6
15  2012 <lgl [1]>     6
16  2000 <lgl [1]>     4
17  1989 <lgl [1]>     1
18  1986 <lgl [1]>     1
19  1990 <lgl [1]>     2
20  2014 <lgl [1]>     6
df1
#一个tibble:20x3
#组别:组别[6]
年周期组
1  1994      2
2  2009      5
3  1997      3
4  2010      6
5  2011      6
6  1987      1
7  1999      3
8  2007      5
9  1998      3
10  1996      3
11  2006      5
12  1995      3
13  2008      5
14  2015      6
15  2012      6
16  2000      4
17  1989      1
18  1986      1
19  1990      2
20  2014      6

请使用
dput添加数据
并显示相同的预期输出。请阅读相关信息以及如何给出建议。
df1 <- df %>%
  group_by(group = findInterval(year, limits))
df1
# A tibble: 20 x 3
# Groups:   group [6]
    year period    group
   <int> <list>    <int>
 1  1994 <lgl [1]>     2
 2  2009 <lgl [1]>     5
 3  1997 <lgl [1]>     3
 4  2010 <lgl [1]>     6
 5  2011 <lgl [1]>     6
 6  1987 <lgl [1]>     1
 7  1999 <lgl [1]>     3
 8  2007 <lgl [1]>     5
 9  1998 <lgl [1]>     3
10  1996 <lgl [1]>     3
11  2006 <lgl [1]>     5
12  1995 <lgl [1]>     3
13  2008 <lgl [1]>     5
14  2015 <lgl [1]>     6
15  2012 <lgl [1]>     6
16  2000 <lgl [1]>     4
17  1989 <lgl [1]>     1
18  1986 <lgl [1]>     1
19  1990 <lgl [1]>     2
20  2014 <lgl [1]>     6