【问题标题】:Convert character/string vector to dates将字符/字符串向量转换为日期
【发布时间】:2017-12-11 14:32:08
【问题描述】:

我正在尝试将季度日期转换为 R 中的“DATE”对象

我的向量是:

r <- c("2010-Q4" "2011-Q1" "2011-Q2" "2011-Q3" "2011-Q4" "2012-Q1" "2012-Q2" "2012-Q3" "2012-Q4" "2013-Q1" "2013-Q2" "2013-Q3" "2013-Q4" "2014-Q1" "2014-Q2" "2014-Q3")

这是一个随机日期向量

我正在尝试应用this post 中提供的解决方案,但不幸的是,建议的答案不起作用,我得到的只是NA

有什么想法吗?

【问题讨论】:

  • 您不能将季度转换为 DATE 对象,除非您想要季度的特定日期(例如第一天或中间)。
  • 您用于创建 r 的行缺少 很多 个逗号,并且在粘贴到 R 时不起作用。

标签: r datetime type-conversion


【解决方案1】:

阅读as.yearqtr 的文档并设置适当的格式字符串对我有用:

> as.yearqtr(r,format="%Y-Q%q")
[1] "2010 Q4" "2011 Q1" "2011 Q2" "2011 Q3" "2011 Q4" "2012 Q1"

并排:

> data.frame(string=r,q=as.yearqtr(r,format="%Y-Q%q"))
   string       q
1 2010-Q4 2010 Q4
2 2011-Q1 2011 Q1
3 2011-Q2 2011 Q2
4 2011-Q3 2011 Q3
5 2011-Q4 2011 Q4
6 2012-Q1 2012 Q1

如果您希望 Date 对象基于季度的第一天:

> as.Date(as.yearqtr(r,format="%Y-Q%q"))
[1] "2010-10-01" "2011-01-01" "2011-04-01" "2011-07-01" "2011-10-01"
[6] "2012-01-01"

【讨论】:

    【解决方案2】:

    我认为您的格式不正确。以下似乎有效:

    library('zoo')
    r <- c("2010-Q4", "2011-Q1", "2011-Q2")
    
    # The format string encodes: %Y: 4 digit year, then a hyphen, 
    # then a capital Q, then %q which refers to the actual quarterly digit.
    as.yearqtr(r, format='%Y-Q%q') 
    # [1] "2010 Q4" "2011 Q1" "2011 Q2"
    

    【讨论】:

      猜你喜欢
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      相关资源
      最近更新 更多