如何在R中将日期转换为Quarters

时间:2015-07-17 12:19:35

标签: r datetime

我有以下格式的面板数据集

Individual    Date
A             05/10/2010
A             06/11/2011
A             21/07/2012
B             22/02/2010
B             15/03/2011
B             28/09/2012

我想将日期转换为季度,以便2010年的季度应该是1,2,3,4 .... 2011年的季度应该从5开始到8 ...... 2012年的季度应该从9开始直到12日。

任何人都可以建议在R中执行此操作的代码吗?

1 个答案:

答案 0 :(得分:3)

library(zoo)
df$Date <- strptime(df$Date, "%d/%m/%Y")
x <- as.numeric(as.yearqtr(df$Date))
firstyr <- as.numeric(as.character(strftime(min(df$Date), "%Y")))
df$quarter <- (x-(firstyr-1))/.25-3
#   Individual       Date quarter
# 1          A 05/10/2010       4
# 2          A 06/11/2011       8
# 3          A 21/07/2012      11
# 4          B 22/02/2010       1
# 5          B 15/03/2011       5
# 6          B 28/09/2012      11

数据

df <- read.table(text="    Individual    Date
    A             05/10/2010
    A             06/11/2011
    A             21/07/2012
    B             22/02/2010
    B             15/03/2011
    B             28/09/2012", header=T)