在R中使用as.yearqtr时获得指数日期

时间:2015-06-26 09:04:56

标签: r

我的日期设置如下。

Created.Date    Supply.Date  Revenue
1/27/2014     8/1/2011        12232
1/27/2014     8/1/2011        45280
1/27/2013     8/1/2011        57512
8/27/2013     8/1/2011        102792
5/27/2013     8/1/2011        160304
5/27/2013     8/1/2011        263096
4/27/2014     8/1/2011        423400
11/20/2014    8/1/2011        686496
3/10/2015     8/1/2011        1109896
7/19/2015     8/1/2011        1796392
12/10/2012    8/1/2011        2906288
8/10/2012     8/1/2011        4702680
3/10/2012     8/1/2011        7608968

我使用了以下代码:

require(zoo)
df.CD.SSD$Created.Date = as.yearqtr(df.CD.SSD$Created.Date, format = "%yQ%q")

但输出不是所需的格式。 输出如下。

Created.Date     Supply.Date     Revenue
2.014e+01 Q1e+00    6/19/2011   12232
2.013e+01 Q1e+00    8/1/2011    45280
2.013e+05 Q2e+00    8/1/2011    57512
2.013e+08 Q3e+00    8/1/2011    102792

我希望输出为“2013 / Q1”,“2014 / Q2”。

非常感谢任何解决此问题的帮助。

1 个答案:

答案 0 :(得分:2)

你可以尝试

df.CD.SSD$Created.Date <- as.yearqtr(df.CD.SSD$Created.Date, format="%m/%d/%Y")

但这只是解决方案的第一部分。正如@ G.Grothendieck在评论中指出的那样,如果通过使用获得所需的格式     df.CD.SSD$Created.Date <- format(as.yearqtr(df.CD.SSD$Created.Date, "%m/%d/%Y"),"%Y / Q%q")

#> head(df.CD.SSD)
#   Created.Date Supply.Date Revenue
#1     2014 / Q1    8/1/2011   12232
#2     2014 / Q1    8/1/2011   45280
#3     2013 / Q1    8/1/2011   57512
#4     2013 / Q3    8/1/2011  102792
#5     2013 / Q2    8/1/2011  160304
#6     2013 / Q2    8/1/2011  263096