如何将csv中的时间格式更改为hh:mm:ss

时间:2018-10-12 07:05:42

标签: r datetime

这是我的时间序列数据:

Date                Time    Price
05/03/2018  09:00:00am  125.9
05/03/2018  09:00:00am  125.9
05/03/2018  09:00:00am  125.9
05/03/2018  09:00:00am  125.9
05/03/2018  09:00:00am  125.9

我想将24小时系统的时间格式更改为“ hh:mm:ss”,并且我想要这样的输出

NewDate            Price
05-03-2018 09:00:00 125.9
05-03-2018 09:00:00 125.9
05-03-2018 09:00:00 125.9
05-03-2018 09:00:00 125.9
05-03-2018 09:00:00 125.9

提前谢谢您。

2 个答案:

答案 0 :(得分:2)

请参见下面的示例,您可以将时区tz更改为应该的时区。

date <- "05/03/2018  09:00:00am"
as.POSIXct(date, "%d/%m/%Y %H:%M:%S%p", tz = "UTC")

%p是语言环境中的AM / PM指示器。 ?strptime的详细信息部分是查找文档的好地方。

答案 1 :(得分:1)

lubridate包使操作变得简单:

library(lubridate)
library(dplyr)

df %>% 
  mutate(NewDate = lubridate::mdy_hms(paste(Date, Time))) %>%
  select(NewDate, Price)

              NewDate Price
1 2018-05-03 09:00:00 125.9
2 2018-05-03 09:00:00 125.9
3 2018-05-03 09:00:00 125.9
4 2018-05-03 09:00:00 125.9
5 2018-05-03 09:00:00 125.9

数据:

df <- structure(list(Date = c("05/03/2018", "05/03/2018", "05/03/2018", 
"05/03/2018", "05/03/2018"), Time = c("09:00:00am", "09:00:00am", 
"09:00:00am", "09:00:00am", "09:00:00am"), Price = c(125.9, 125.9, 
125.9, 125.9, 125.9)), class = "data.frame", row.names = c(NA, 
-5L))