这是我的时间序列数据:
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
提前谢谢您。
答案 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))