将 YEARQT 格式的字符转换为 R 中的季度“日期”

C. *_*ter 2 r zoo as.date tsibble

日期
1960年第一季度
1960年第二季度
1960年第三季度
1960年第四季度
1961年第一季度
1961年第二季度

我有以下数据框。我正在尝试将第一列放入 tsibble 中。现在我有一个问题。我如何切换到日期以便可以将其读取为季度。

我尝试zoo使用

DATA.QTR <- DATA.QTR %>%   mutate(QUARTER = as.Date(as.yearqtr(Date, "%Y %Q")))
Run Code Online (Sandbox Code Playgroud)

但它没有读它。

Gnu*_*une 5

你快明白了!格式需要稍微调整一下。

%YQ%q:%Y代表年份,Q代表初始格式中的 Q,%q代表季度。

代码

library(zoo)

DATA.QTR <- DATA.QTR %>% mutate(QUARTER = as.Date(as.yearqtr(format(Date), "%YQ%q")))
Run Code Online (Sandbox Code Playgroud)

输出

> DATA.QTR
# A tibble: 6 x 2
  Date   QUARTER   
  <chr>  <date>    
1 1960Q1 1960-01-01
2 1960Q2 1960-04-01
3 1960Q3 1960-07-01
4 1960Q4 1960-10-01
5 1961Q1 1961-01-01
6 1961Q2 1961-04-01
Run Code Online (Sandbox Code Playgroud)

数据

DATA.QTR <- structure(list(Date = c("1960Q1", "1960Q2", "1960Q3", "1960Q4", 
                                    "1961Q1", "1961Q2")), class = c("tbl_df", "tbl", "data.frame"
                                    ), row.names = c(NA, -6L))
Run Code Online (Sandbox Code Playgroud)