Parsing/formatting 使用 lubridate 的奇数日期格式
Parsing/formatting odd date formats with lubridate
我在使用 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")
有什么想法吗?
如果我们匹配 month.abb
中的缩写,它将起作用。一种选择是使用 sub
.
删除 'Sept' 中的 't'
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: Abbreviated month name in the current locale on this platform.
(Also matches full name on input: in some locales there are no
abbreviations of names.)
我在使用 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")
有什么想法吗?
如果我们匹配 month.abb
中的缩写,它将起作用。一种选择是使用 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: Abbreviated month name in the current locale on this platform. (Also matches full name on input: in some locales there are no abbreviations of names.)