2017-08-05 76 views
-1

我有日期和时间列。主要问题是年份(2016)未在csv文件中完成,而OCT也不是数字。以字母为单位更改月份的日期格式

Date  Time   rtime 
20-Oct-16 14:02:00  20-Oct-16 14:02:00 
20-Oct-16 14:02:03  20-Oct-16 14:02:03 

我想这种格式

newtime 
2016-10-20 14:02:00 
2016-10-20 14:02:03 

如何使当月的常规数字格式,使16到2016年

+0

使用dmy_hms(DF $ RTIME)如dmy_hms(“20-Oct-16 14:02:00”) –

回答

2

随着lubridate你不任何建议称为newtime另一列如果月份带有名称(Oct)或十进制数字(10)或年份是2016或16,则不需要指定.Labridate函数解析异构日期时间格式。例如:

library(lubridate) 
df$newtime = dmy_hms(df$rtime) 

     Date  Time    rtime    newtime 
1 20-Oct-16 14:02:00 20-Oct-16 14:02:00 2016-10-20 14:02:00 
2 20-Oct-16 14:02:03 20-Oct-16 14:02:03 2016-10-20 14:02:03 

如果您使用strptime那么您需要定义格式。见?strptime。

1

我们可以使用strptime

strptime("20-Oct-16 14:02:00", "%d-%b-%y %H:%M:%S") 

或者dmy_hmslubridate

lubridate::dmy_hms("20-Oct-16 14:02:00") 
1

我们也可以使用as.POSIXctformat

as.POSIXct("20-Oct-16 14:02:00", format = "%d-%b-%y %H:%M:%S") 
#[1] "2016-10-20 14:02:00 IST" 
相关问题