簡體   English   中英

在 R 中將時間轉換為一天中的 24 小時格式

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM