【问题标题】:Specific date format conversion problems in RR中具体的日期格式转换问题
【发布时间】:2010-12-19 06:59:39
【问题描述】:

基本上我想知道为什么as.Date(200322,format="%Y%W") 给了我NA。当我们这样做时,我将不胜感激有关 R 中重复横截面(又名伪面板)的数据结构的任何建议。 我确实得到了aggregate() (某种)工作,但它不够灵活 - 例如,当我省略丢失的值时,它会丢失列上的数据。 具体来说,我有一个连续几年每周重复一次的调查,其中包含一堆类似的问题答案,我想在两个维度上结合、平均、条件和绘图。获得正确的日期转换应该可以帮助我通过 zoo 包或类似的东西实现我的目标。

感谢任何输入。

更新:感谢字符串建议,但正如您在自己的示例中看到的那样,%W 部分不起作用 - 它仅在设置当前日期时识别年份,而我需要设置特定的一周(然后离开天空白)。

【问题讨论】:

  • 嗨,亚历克斯,你能澄清一下你在这里想要做什么。你想代表什么时间?如果您想输入 2/2/2003,您可能想尝试以下操作: as.Date("20030202",format="%Y%m%d") 另外,请务必将您的日期作为字符串,否则它将希望将日期解释为来自某个来源的秒数。
  • 您问题的第二部分可能应该拆分为一个新问题并提供更多细节。你的数据是什么样的?你到底想做什么?

标签: r date


【解决方案1】:

使用字符串作为as.Date() 中的第一个参数并选择特定的工作日(格式%w,值0-6)。每周有七个可能的日期,因此strptime 需要更多信息来选择唯一的日期。否则返回当前日期和月份。

> as.Date(paste("200947", "0", sep="-"), format="%Y%W-%w")
[1] "2009-11-22"

【讨论】:

  • 但是为什么format(as.Date("2003-06-02"),"%Y-%W")"2003-22",而as.Date("2003-22","%Y-%W")"2003-11-23"(月份和日期是从当前日期开始)
  • 你必须指定工作日的编号(as.Date("2003-22-1","%Y-%W-%w")),否则没有唯一的结果,返回当前的日期和月份。
猜你喜欢
  • 1970-01-01
  • 2011-02-05
  • 2012-04-16
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 2021-12-19
  • 2021-04-21
相关资源
最近更新 更多