持续时间{lubriate}:持续时间可以是负的吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我读过的所有文档似乎都表明,在流苏酸盐1.7.4包括R文件中提供的例子:

> duration(-1, "days")
> duration(day = -1)

表示与示例输出类似的内容:

> new_duration(secs = -1, mins = -1, hours = -1)
[1] "-1 hours, -1 minutes and -1 seconds"

但是当我跑的时候duration(-1, "days"),R返回:

[1] "86400s (~1 days)"
提问于
用户回答回答于

我想打印它时仍有问题,但如果不打印,则持续时间会很好:

date <- mdy("7/8/17")
date - duration(10, "days")
# [1] "2017-06-28"
date + duration(-10, "days)
# [1] "2017-06-28"

工期是一个类,其中包含持续时间为秒,可以检查以确认它确实是负的:

duration(-10, "days")@.Data
# [1] -864000
duration(-10, "days")@.Data / 3600 / 24 # to get the days:
# [1] -10
用户回答回答于

format.Duration函数调用abs打印时Duration。我想这是一种有意的行为,尽管你必须向开发人员进行推理(可能是因为人们倾向于将持续时间理解为积极的)。

library(lubridate)
neg <- duration(-1)
pos <- duration(2)
neg + pos
#> [1] "1s"
unclass(neg)
#> [1] -1

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券