【问题标题】:lubridate: how to parse month-year? [duplicate]lubridate:如何解析月年? [复制]
【发布时间】:2017-04-28 14:31:37
【问题描述】:

我有一列日期如下,

> mymonth = c('10/2015','11/2016','12/2016')
> data <- data_frame(mymonth)
> data
# A tibble: 3 × 1
  mymonth
    <chr>
1 10/2015
2 11/2016
3 12/2016

在这里,显然,我的月份对应于一年中的特定月份。 2015 年 10 月、2015 年 11 月和 2015 年 12 月。

我无法使用lubridate 正确解析这些日期。假设月份对应于该月的最后一个工作日。

如何将此变量转换为lubridate 可以理解的date 变量?

谢谢~

【问题讨论】:

  • 为每个人附加一天(01),然后您继续工作!否则可能正在使用zoo
  • @RonakShah 预期输出是lubridate 理解的日期变量(所以不是character
  • @DavidArenburg,你指的问题是5岁!!另外,请注意,在这里我希望解决方案与 tidyverse 兼容。所以你的标志是无关紧要的
  • 这个问题已有 5 年历史的事实只会加强我的观点
  • 然而,你从 5 年前的骗子那里接受了完全相同的解决方案。而你称我的旗帜为“irrelevant。让我在这里做一个疯狂的猜测,说乔尔为你搜索了它,并从那个骗子那里复制了解决方案。

标签: r date dplyr lubridate anytime


【解决方案1】:
library(zoo)
as.yearmon(mymonth, "%m/%Y")
[1] "Oct 2015" "Nov 2016" "Dec 2016"

as.Date(as.yearmon(mymonth, "%m/%Y"))
[1] "2015-10-01" "2016-11-01" "2016-12-01"

或其他解决方法,

as.Date(paste0("01/", mymonth),format = "%d/%m/%Y")
[1] "2015-10-01" "2016-11-01" "2016-12-01"

【讨论】:

  • 感谢@joel.wilson。 zoo 解决方案,兼容ggplotlubridate?
  • 没有得到与 lubridate 兼容的真正用途?实际上从未尝试过使用 ggplot2 包
  • 再次,Google
  • 给这篇文章添加一点货币:你可以使用lubridate的parse_date_time函数如下format(lubridate::parse_date_time(mymonth, orders = c("m/Y")), "%m-%Y")
  • Nick 的评论是这里唯一真正回答了试图理解 lubriate 的人的问题(谁会在谷歌搜索后结束)。 @joel.wilson 你想更新你的答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多