我正在处理具有多种日期格式的凌乱excel文件
2016-10-17T12:38:41Z
Mon Oct 17 08:03:08 GMT 2016
10-Sep-15
13-Oct-09
18-Oct-2016 05:42:26 UTC
Run Code Online (Sandbox Code Playgroud)
我想以yyyy-mm-dd格式转换以上所有内容.我正在使用以下代码进行转换,但很多值都是NA.
as.Date(parse_date_time(df$date,c('mdy', 'ymd_hms','a b d HMS y','d b y HMS')))
Run Code Online (Sandbox Code Playgroud)
我怎么能一起做所有这些.我已经读过类似案例的其他主题,但似乎没有什么能适用于我的案例.请帮忙
如果我添加'dmy'到列表中,那么至少会成功解析示例中的所有案例:
z <- c("2016-10-17T12:38:41Z", "Mon Oct 17 08:03:08 GMT 2016",
"10-Sep-15", "13-Oct-09", "18-Oct-2016 05:42:26 UTC")
library(lubridate)
parse_date_time(z,c('mdy', 'dmy', 'ymd_HMS','a b d HMS y','d b y HMS'))
## [1] "2016-10-17 12:38:41 UTC" "2016-10-17 08:03:08 UTC"
## [3] "2015-09-10 00:00:00 UTC" "2009-10-13 00:00:00 UTC"
## [5] "2016-10-18 05:42:26 UTC"
Run Code Online (Sandbox Code Playgroud)
你最大的问题将是第三和第四元素:在这些实际上意味着要'ymd'和'dmy'分别?我不确定任何逻辑会让你自动检测这些差异......脱离背景,"2010年9月15日"和"2015年9月10日"似乎都是完全合理的可能性......
为了它的价值我还尝试了新的随时包 - 它只处理了第一个和最后一个元素.