我有日期和时间列。主要问题是csv文件中的年份(2016)未完成且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
的列,格式为
newtime
2016-10-20 14:02:00
2016-10-20 14:02:03
有关如何以常规数字格式制作月份并将2016年纳入2016年的任何建议。
答案 0 :(得分:2)
使用lubridate,您无需指定月份是否带有名称(十月)或十进制数字(10)或年份是2016或16.Lubridate函数解析异构日期时间格式。例如:
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 :(得分:1)
我们可以使用strptime
strptime("20-Oct-16 14:02:00", "%d-%b-%y %H:%M:%S")
dmy_hms
来自lubridate
lubridate::dmy_hms("20-Oct-16 14:02:00")
答案 2 :(得分:1)
我们也可以将as.POSIXct
与format
as.POSIXct("20-Oct-16 14:02:00", format = "%d-%b-%y %H:%M:%S")
#[1] "2016-10-20 14:02:00 IST"