是否从R中的%Y-%m-%d创建季度?[重复]

ijnw1ujt  于 2023-01-28  发布在  其他
关注(0)|答案(2)|浏览(127)
    • 此问题在此处已有答案**:

Format date as Year/Quarter(10个答案)
6个月前关闭。
我有%Y- % m- % d格式的Time,如何创建Quarter以获得:

Time       | Quarter
2018-01-31 | 2018 Q1
2018-02-28 | 2018 Q1
2018-03-31 | 2018 Q1
2018-04-30 | 2018 Q2
2018-05-31 | 2018 Q2
2018-06-30 | 2018 Q2
mrzz3bfm

mrzz3bfm1#

zoo包有一个year-quarter类,所以你可以用这种方式打印日期,但它仍然被识别为一个时间值,用于绘图等。否则,如果你转换为字符,它就会丢失。

df$Quarter <- zoo::as.yearqtr(as.Date(df$Time))

df
#>         Time Quarter
#> 1 2018-01-31 2018 Q1
#> 2 2018-02-28 2018 Q1
#> 3 2018-03-31 2018 Q1
#> 4 2018-04-30 2018 Q2
#> 5 2018-05-31 2018 Q2
#> 6 2018-06-30 2018 Q2
shyt4zoc

shyt4zoc2#

我们可以通过使用lubridates ymdyear函数结合基础Rs quarters函数来实现这一点:

library(lubridate)
library(dplyr)
df %>% 
  mutate(Time = ymd(Time),
         Quarter = paste(year(Time), quarters(Time)))
Time Quarter
1 2018-01-31 2018 Q1
2 2018-02-28 2018 Q1
3 2018-03-31 2018 Q1
4 2018-04-30 2018 Q2
5 2018-05-31 2018 Q2
6 2018-06-30 2018 Q2

相关问题