当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。