English · PDF 275
接下来你将学习日期的算术运算,包括减法、加法和除法。在此过程中,你会了解三个表示时间跨度的重要类:
在 R 中,当你对两个日期做减法时,会得到一个 difftime 对象:
# Hadley 多大了? h_age <- today() - ymd(19791014) h_age #> Time difference of 13511 days
difftime 类对象记录的时间跨度可以是秒、分钟、小时、天或周。这种歧义使得 difftime 用起来有些麻烦,因此 lubridate 提供了一种始终使用秒的替代方案——时长(duration):
as.duration(h_age) #> [1] "1167350400s (~36.99 years)"
时长提供了许多便捷的构造函数:
dseconds(15) #> [1] "15s" dminutes(10) #> [1] "600s (~10 minutes)" dhours(c(12, 24)) #> [1] "43200s (~12 hours)" "86400s (~1 days)" ddays(0:5) #> [1] "0s" "86400s (~1 days)" #> [3] "172800s (~2 days)" "259200s (~3 days)"