difftime
位于 base
包(package)。 说明
时间间隔创建、打印和一些算术。 print()
方法调用这些“time differences”。
用法
time1 - time2
difftime(time1, time2, tz,
units = c("auto", "secs", "mins", "hours",
"days", "weeks"))
as.difftime(tim, format = "%X", units = "auto", tz = "UTC")
## S3 method for class 'difftime'
format(x, ...)
## S3 method for class 'difftime'
units(x)
## S3 replacement method for class 'difftime'
units(x) <- value
## S3 method for class 'difftime'
as.double(x, units = "auto", ...)
## Group methods, notably for round(), signif(), floor(),
## ceiling(), trunc(), abs(); called directly, *not* as Math():
## S3 method for class 'difftime'
Math(x, ...)
参数
time1 , time2 |
|
tz |
用于转换的可选 time zone 规范,主要用于 |
units |
字符串。所需结果的单位。可以缩写。 |
value |
字符串。与 |
tim |
指定时间间隔的字符串或数值。 |
format |
指定 |
x |
从类 |
... |
要传递给其他方法或从其他方法传递的参数。 |
细节
函数 difftime
计算两个日期/时间对象的差异,并返回 "difftime"
类的对象,该对象具有指示单位的属性。 Math
组方法为该类的对象提供了 round
、 signif
、 floor
、 ceiling
、 trunc
、 abs
和 sign
方法,并且还有用于组的方法 -通用(请参阅Ops
)逻辑和算术运算。
如果 units = "auto"
,则选择一组合适的单位,尽可能最大的单位(不包括 "weeks"
),其中所有绝对差都大于 1。
通过使用 units = "auto"
调用 difftime
来减去日期时间对象会给出此类的对象。或者,as.difftime()
适用于 character-coded 或数字时间间隔;在后一种情况下,必须指定单位,并且 format
不起作用。
"difftime"
对象上可用的算术有限:它们可以与数值向量相加或相减、相乘或相除。此外,通过 "difftime"
对象添加或减去数值向量会将该数值向量隐式转换为与 "difftime"
对象具有相同单位的 "difftime"
对象。有 mean
和 sum
的方法(通过 Summary
组通用),以及 diff
通过 diff.default
构建在 "difftime"
算术方法上,特别是 -
。
"difftime"
对象的单元可以通过 units
函数提取,该函数也有替换形式。如果单位改变,数值也会相应缩放。替换版本保留名称和尺寸等属性。
请注意,units = "days"
表示 24 小时的时间段,因此不考虑夏令时。 "Date"
类对象的差异按照 UTC 时区进行计算。
as.double
方法返回以指定单位表示的数值。使用units = "auto"
表示对象的单位。
format
方法只是格式化数值并将单位附加为文本字符串。
警告
因为R遵循 POSIX(以及几乎所有计算机时钟)忽略闰秒,时间差异也是如此。所以在 UTC 时区
z <- as.POSIXct(c("2016-12-31 23:59:59", "2017-01-01 00:00:01")) z[2] - z[1]
报告‘时差2秒’但是3秒过去了,电脑时钟前进了2秒。
如果您想要经过的时间间隔,您需要自己添加任何闰秒。
注意
像 "months"
这样的单元是不可能的,因为它们的长度不是恒定的。要创建月份、季度或年份的间隔,请使用 seq.Date
或 seq.POSIXt
。
例子
(z <- Sys.time() - 3600)
Sys.time() - z # just over 3600 seconds.
## time interval between release days of R 1.2.2 and 1.2.3.
ISOdate(2001, 4, 26) - ISOdate(2001, 2, 26)
as.difftime(c("0:3:20", "11:23:15"))
as.difftime(c("3:20", "23:15", "2:"), format = "%H:%M") # 3rd gives NA
(z <- as.difftime(c(0,30,60), units = "mins"))
as.numeric(z, units = "secs")
as.numeric(z, units = "hours")
format(z)
也可以看看
相关用法
- R diff 滞后差异
- R diag 矩阵对角线
- R dimnames 对象的暗名称
- R dim 物体的尺寸
- R dump R 对象的文本表示
- R deparse 表达式解析
- R deparseOpts 表达式解析选项
- R dots ...、..1 等在函数中使用
- R debug 调试函数
- R do.call 执行函数调用
- R dcf 以 DCF 格式读写数据
- R data.class 对象类
- R dyn.load 对外函数接口
- R dput 将对象写入文件或重新创建它
- R duplicated 确定重复元素
- R dontCheck 抑制检查的身份函数
- R drop 删除冗余盘区信息
- R delayedAssign 延迟评估和承诺
- R det 计算矩阵的行列式
- R detach 从搜索路径中分离对象
- R data.frame DataFrame
- R double 双精度向量
- R data.matrix 将 DataFrame 转换为数字矩阵
- R date 系统日期和时间
- R droplevels 删除因子中未使用的级别
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Time Intervals / Differences。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。