【问题标题】:r: How to extract month and day for the variable not date formatr:如何为变量而不是日期格式提取月份和日期
【发布时间】:2021-06-25 12:55:29
【问题描述】:

我有一个包含日期信息的日期集。 但我发现这个日期变量不是日期格式,所以lubridate 包不起作用。 这是我的日期变量

date <-as.character("February 2, 2021")
mdy(date)  
[1] "2021-02-20"

所以mdy 函数会产生不正确的结果。 我想知道如何将此变量转换为日期格式或 分别提取月份和日期。 感谢您的帮助。

【问题讨论】:

  • 试试as.Date(date,"%B %d, %Y")。作为记录,lubridate 中的 mdy 给了我正确的输出。
  • 如果您阅读?as.Date,除了参考strftimestrptime 之外,您不会发现太多内容。尽管断言strptime 没有帮助页面,但如果您阅读?strptime,您会看到格式"%B" 表示“当前语言环境中的全月名称”。有了它,您可以尝试将它与"%d"(作为十进制数的月份的日期)和"%Y"(带有世纪的年份,也就是 4 位数年份)结合起来。尼古拉的建议有效:-)
  • "2021-02-20" 不等同于"February 2, 2021" 吗?
  • @Trusky No: "2021-02-20" 相当于 2021 年 2 月 20 日。
  • 使用 lubridate '1.7.10' 这是最新的 CRAN 版本,我无法重现。请注意,不需要 as.character,因为参数已经是字符。

标签: r date type-conversion format lubridate


【解决方案1】:

编写与您相同的代码

library(lubridate)
date <- as.character("February 2, 2021")
mdy(date)

我得到了我认为正确的输出:

[1] "2021-02-02"

您使用的是哪个版本的软件包lubridate?以上输出使用包版本 1.7.4、R 版本 3.6.2 生成。

【讨论】:

  • 请不要发布答案以规避随处评论特权。对于无法重现的问题,flag the post 因无法重现而关闭。获得 50 名声望后,您将能够在问题下方发布诸如 comments 之类的消息。
  • 嗨@IanCampbell,对 SO 还是有点陌生​​,感谢您提供的信息。但是,没有看到关闭标志(由于无法复制)。我会添加我的注释作为评论,但由于我的声誉低下,我无权这样做。
  • 知道了,问题已标记,再次感谢。同时...根据 SO 标准和规则,我应该删除我的答案吗?
  • 好吧,公平的回答。我们将看看它是否对提问者有帮助 - 如果是这样并且他指定了问题,那么这个答案被认为是无用的,应该去:)
猜你喜欢
  • 2017-03-25
  • 2011-05-23
  • 2020-10-18
  • 2019-03-20
  • 2020-09-27
  • 2022-01-24
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多