2017-08-05 73 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" 
相關問題