使用lubridate解析/格式化奇数日期格式

时间:2016-02-18 18:33:49

标签: r string-formatting lubridate

我在使用lubridate格式化以下日期时遇到了一些麻烦。我没有嫁给这个重要的方法,但是有人可以推荐一个很好的方法来格式化这些不稳定的9月日期吗?

library(lubridate)

df <- data.frame(y=1:5, Date=c("Sept 1 2002","Sept 7 2002","Sept 9 2002","Sept 20 2002","Sept 21 2002"))

我真的没想到这会起作用:

df$Date2=mdy(df$Date)

但我不明白为什么这个不起作用:

df$Date2=parse_date_time(df$Date, "%b %d %Y")

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果我们匹配month.abb中的缩写,它将起作用。一种选择是删除“&#39;在&#39; 9月&#39;使用sub

 mdy(sub('(...).', '\\1', df$Date))
 #[1] "2002-09-01 UTC" "2002-09-07 UTC" "2002-09-09 UTC" "2002-09-20 UTC" "2002-09-21 UTC"

month.abb
#[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"

如果我们查看?strptime

  

%b:此平台上当前区域设置中的缩写月份名称。   (也匹配输入的全名:在某些语言环境中没有   名字的缩写。)