當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R hms hms 用於存儲一天中的時間值的簡單類

這些值存儲為具有自定義類的 difftime 向量,並且始終以 "seconds" 作為單位,以實現對數字的穩健強製。支持從時間值進行構造、對各種數據類型進行強製轉換以及格式化。可以用作 DataFrame 中的常規列。

hms() 是一個高級構造函數,它接受秒、分、小時和日分量作為數值向量。

new_hms() 是一個低級構造函數,僅檢查其輸入是否具有正確的基類型 numeric

is_hms() 檢查對象是否屬於 hms 類。

as_hms() 是一個泛型,支持轉換以外的轉換。默認方法轉發到 vec_cast()

用法

hms(seconds = NULL, minutes = NULL, hours = NULL, days = NULL)

new_hms(x = numeric())

is_hms(x)

as_hms(x, ...)

# S3 method for hms
as.POSIXct(x, ...)

# S3 method for hms
as.POSIXlt(x, ...)

# S3 method for hms
as.character(x, ...)

# S3 method for hms
format(x, ...)

# S3 method for hms
print(x, ...)

參數

seconds, minutes, hours, days

時間從午夜開始。不執行邊界檢查。

x

一個東西。

...

要傳遞給方法或從方法傳遞的附加參數。

細節

對於 hms() ,所有參數必須具有相同的長度或者為 NULL 。奇數組合(例如,僅傳遞 secondshours 但不傳遞 minutes )將被拒絕。

對於 POSIXctPOSIXlt 類型的參數,as_hms() 不執行時區轉換。根據需要使用lubridate::with_tz()lubridate::force_tz()

例子

hms(56, 34, 12)
#> 12:34:56
hms()
#> hms()

new_hms(as.numeric(1:3))
#> 00:00:01
#> 00:00:02
#> 00:00:03
# Supports numeric only!
try(new_hms(1:3))
#> Error in new_hms(1:3) : `x` must be a vector with type <double>.
#> Instead, it has type <integer>.

as_hms(1)
#> 00:00:01
as_hms("12:34:56")
#> 12:34:56
as_hms(Sys.time())
#> 16:53:34.607852
as.POSIXct(hms(1))
#> [1] "1970-01-01 00:00:01 UTC"
data.frame(a = hms(1))
#>          a
#> 1 00:00:01
d <- data.frame(hours = 1:3)
d$hours <- hms(hours = d$hours)
d
#>      hours
#> 1 01:00:00
#> 2 02:00:00
#> 3 03:00:00
源代碼:R/hms.R

相關用法


注:本文由純淨天空篩選整理自Kirill Müller等大神的英文原創作品 A simple class for storing time-of-day values。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。