当年份从一月以外的月份开始时,如何将日期分组为年份

时间:2018-10-10 14:44:29

标签: r

我拥有的数据包含从2000年到2020年的日期:

date[1:5]
# [1] "2000-01-01" "2000-01-02" "2000-01-03" "2000-01-04" "2000-01-05" 

str(date)
# Date[1:941], format: 2000-01-01" "2000-01-02" "2000-01-03" "2000-01-04"..

我可以这样做:

indices <- cut(date, "year")

然后,从"2000-01-01""2000-12-31"的所有日期都将映射到"2000-01-01"

但是我希望从"1999-12-01""2000-11-30"的所有日期都映射到"2000-01-01"

我想要等价于cut(date, "year"),但是将年份转换为从1月以外的月份开始。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是定义所需中断和相关标签的序列。像这样:

date<-as.Date(c("2000-01-01", "2000-01-02", "2000-01-03", "2000-01-04", "2000-01-05"))

#define break points
cutpoints<-seq.Date(as.Date("1999-12-01"), by="1 year", length.out = 23)
#define labels (1 less than the number of breaks)
names<-seq.Date(as.Date("2000-01-01"), by="1 year", length.out = 22)


cut(date, breaks=cutpoints, labels = names)