如何将以下日期格式转换为R中的标准日期格式?

时间:2018-06-04 20:13:54

标签: r

我在数据框中有以下日期和时间值,有些值在" /"格式和一些在" - "格式。我应该如何标准化格式并保持格式#DD; MM-YYYY HH:MM:SS"。此外,在某些情况下,秒值不存在。 有什么建议吗?

Datime$Day
11/7/2016 11:51
11/7/2016 17:57
12/7/2016 9:17
12/7/2016 21:08
13-07-2016 08:33:16
13-07-2016 21:57:28
14-07-2016 06:15:32
15-07-2016 05:11:52
15-07-2016 17:57:27

2 个答案:

答案 0 :(得分:2)

来自parse_date_time的{​​{1}}一个选项可匹配多个模式并将其转换为日期时间类

lubridate

另一个选项是library(lubridate) parse_date_time(Datime$Day, c("%d/%m/%Y %H:%M", "%d-%m-%Y %H:%M:%S")) #[1] "2016-07-11 11:51:00 UTC" "2016-07-11 17:57:00 UTC" #[3] "2016-07-12 09:17:00 UTC" "2016-07-12 21:08:00 UTC" #[5] "2016-07-13 08:33:16 UTC" "2016-07-13 21:57:28 UTC" #[7] "2016-07-14 06:15:32 UTC" "2016-07-15 05:11:52 UTC" #[9] "2016-07-15 17:57:27 UTC" (如果在默认格式列表anytime中尚未找到格式,请使用getFormats()添加新格式)

addFormats()

数据

library(anytime)
addFormats( c("%d/%m/%Y %H:%M", "%d-%m-%Y %H:%M:%S"))
anytime(Datime$Day)

答案 1 :(得分:1)

使用基础库:

strptime(paste0(gsub("/","-",Datime$Day),":00"),"%d-%m-%Y %H:%M:%S","UTC") 
[1] "2016-07-11 11:51:00 UTC" "2016-07-11 17:57:00 UTC"
[3] "2016-07-12 09:17:00 UTC" "2016-07-12 21:08:00 UTC"
[5] "2016-07-13 08:33:16 UTC" "2016-07-13 21:57:28 UTC"
[7] "2016-07-14 06:15:32 UTC" "2016-07-15 05:11:52 UTC"
[9] "2016-07-15 17:57:27 UTC"
相关问题