【问题标题】:How to group dates into years, when the year starts on a month other than January [duplicate]当年份从一月以外的月份开始时,如何将日期分组为年份[重复]
【发布时间】:2018-10-10 14:44:28
【问题描述】:

我有这些数据,其中包含 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") 的等价物,但年份会从一月以外的月份开始。

我该怎么做?

【问题讨论】:

  • 你能用代码举例说明你想要的输出吗?我不清楚你在找什么。
  • 我想我能够弄清楚。我已经编辑了您的问题,请查看并确保它是正确的。

标签: r


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2017-01-27
    • 2018-12-24
    相关资源
    最近更新 更多