[英]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.