[英]Converting time to 24 hour of day format in R
我有一个数据框,其中包含年、年、月、12 小时时间和一些能源数据。 我想将 12 小时格式的时间数据转换为一天中的几个小时(1-24)。 时间是人物课。
format(as.POSIXct(t, format = '%I %p'), format = "%H")
在哪里
t <- df$time
df$time== 字符类中的时间,格式如下:
"12 a.m." "3 p.m."
但是在代码之后我得到了所有的 NA 并且列没有变化。
我认为你应该举一个例子,所以结果正是你正在寻找的......尝试一下......
Time2 <− c("11:00 AM", "10:42 AM", "12:34 AM")
format(as.POSIXct(Time2, format = '%I:%M %p'), format = "%H:%M:%S")
这是一个lubridate
解决方案。 假设所有时间的格式都像您的示例:仅小时,后跟“am”或“pm”。 日期时间转换函数仅识别“am”或“pm”,因此您需要删除句点。
library(lubridate) # install first if required
times <- c("12 a.m.", "3 p.m.")
# code with nested functions
new_times <- hour(parse_date_time(gsub("\\.", "", times), "%I %p"))
# code with pipes (easier to read, perhaps)
library(magrittr)
new_times <- times %>%
gsub("\\.", "", .) %>%
parse_date_time(., "%I %p") %>%
hour()
结果:
new_times
[1] 0 15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.