美文网首页
64.关于date-time组件的“四舍五入”

64.关于date-time组件的“四舍五入”

作者: 心惊梦醒 | 来源:发表于2021-09-21 19:42 被阅读0次

【上一篇:63.关于date-time组件的获得与更改】
【下一篇:65.关于时间跨度-time span(一)】

    本篇讲三个函数:round_date()、floor_date()和ceiling_date(),即date-time对象的round、floor、ceiling方法。
    这三个函数的输入是一个date-time对象和一个时间单元。round_date()将date-time四舍五入到与指定时间单元最近的值,正好处于两个连续时间单元的值要“入”到较大的时间单元注意:这符合R的base::round. posixt()函数的行为,但不遵循base::round()函数的约定-根据IEC 60559,该函数“舍入到偶数(even digit)”;floor_date()和ceiling_date()分别将date-time四舍五入到与指定时间单元最近的下边界和上边界。
    时间单元(time unit)可以是“ second, minute, hour, day, week, month, bimonth, quarter, season, halfyear和year”;也可以是这些值的倍数,例如2 hours、0.5 s;允许使用任意唯一的英文缩写,如period()构造函数中的缩写,如秒sec/secs,分钟min/mins。
    当时间单元是weeks时,要用week_start指定参考日,7(默认)代表星期日,1代表星期一,即指定表示哪一天是一周的第一天。
    三个函数的Usage如下:

round_date(
  x,
  unit = "second",
  week_start = getOption("lubridate.week.start", 7)
)

floor_date(
  x,
  unit = "seconds",
  week_start = getOption("lubridate.week.start", 7)
)

ceiling_date(
  x,
  unit = "seconds",
  change_on_boundary = NULL,
  week_start = getOption("lubridate.week.start", 7)
)

    对ceiling_date()来说,还有个change_on_boundary参数:如果该值为NULL(默认值),则边界上的瞬间保持不变,但Date对象将向上舍入到下一个边界。如果为TRUE,则边界上的瞬间将四舍五入到下一个边界。如果这是FALSE,则边界上的任何内容都不会被四舍五入。在v1.6.0之前,这是lubridate的默认值。有关更多细节,请参阅帮助文档中的Rounding Up Date Objects部分。

【上一篇:63.关于date-time组件的获得与更改】
【下一篇:65.关于时间跨度-time span(一)】

相关文章

网友评论

      本文标题:64.关于date-time组件的“四舍五入”

      本文链接:https://www.haomeiwen.com/subject/ammpgltx.html