代码之家  ›  专栏  ›  技术社区  ›  Daniela Rodrigues

从R中的%Y-%m-%d创建季度?[副本]

  •  1
  • Daniela Rodrigues  · 技术社区  · 4 年前

    我有 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
    
    2 回复  |  直到 4 年前
        1
  •  4
  •   Allan Cameron    4 年前

    这个 zoo package有一个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
    
        2
  •  3
  •   TarJae    4 年前

    我们可以通过使用润滑剂来实现这一点 ymd 和 year 与基本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
    
    推荐文章