如何在R中设置季度日期的格式?
我的df如下所示:如何在R中设置季度日期的格式?,r,date,format,quarter,R,Date,Format,Quarter,我的df如下所示: df ID Date 1 2000/01/12 2 2015/06/11 3 2013/09/10 4 2002/01/07 5 2006/04/05 我想添加第三列,用代码表示季度: df$quarter <- paste(format(df$Date, "%y"), sprintf("%02i", (as.POSIXlt(df$Date)$mon) %
df
ID Date
1 2000/01/12
2 2015/06/11
3 2013/09/10
4 2002/01/07
5 2006/04/05
我想添加第三列,用代码表示季度:
df$quarter <- paste(format(df$Date, "%y"),
sprintf("%02i", (as.POSIXlt(df$Date)$mon) %/% 3L + 1L), sep="/")
我的问题是如何更改quarter列的格式以获得以下输出:
ID Date quarter
1 2000/01/12 00/04
2 2015/06/11 15/04
3 2013/09/10 13/04
4 2002/01/07 02/03
5 2006/04/05 06/02
ID Date quarter
1 2000/01/12 2000q4
2 2015/06/11 2015q4
3 2013/09/10 2013q4
4 2002/01/07 2002q3
5 2006/04/05 2006q2
我不知道如何正确修改我的代码!谢谢大家! 我们可以使用
zoo
中的as.yearqtr
,然后使用sub
将Q
后面的空格替换为Q
library(zoo)
df$quarter <- sub("\\s+Q", "q", as.yearqtr(df$Date, '%Y/%d/%m'))
df$quarter
#[1] "2000q4" "2015q4" "2013q4" "2002q3" "2006q2"
图书馆(动物园)
df$quarter非常有效!惊人的解决方案!谢谢@akrun!:)或者像这样使用%q格式:transform(df,Date=format(如.yearqtr(Date,'%Y/%d/%m'),%Yq%q))
df <- transform(df, Date = format(as.yearqtr(Date, '%Y/%d/%m'), "%Yq%q"))
df <- structure(list(ID = 1:5, Date = c("2000/01/12", "2015/06/11",
"2013/09/10", "2002/01/07", "2006/04/05")),
class = "data.frame", row.names = c(NA,
-5L))