我有一个 lubridate 的 interval
,想要将其转化为整数天数。但是我得到了以下奇怪的中间结果:
library("lubridate")
i1 <- interval("2015-01-01 00:00:00", "2016-01-01 00:00:00")
i1 <- interval(ymd_hms("2015-01-01 00:00:00"), ymd_hms("2016-01-01 00:00:00")) # Gives the same result
duration(i1)
# [1] "31536000s (~365 days)"
duration(i1, units = "days")
# [1] "2724710400000s (~86340.86 years)"
这里有两个有效的快捷方式。后者会抛出一个消息 "coercing interval to duration" (我不知道原因是什么...)
> as.numeric(as.duration(i1), units = "days")
[1] 365
> as.numeric(i1, units = 'days')
(R版本为2016年5月3日发布的3.3.0版,lubridate版本为1.5.6.)
r
,但我可以告诉你一天有86,400秒,并猜测你正在进行某种双重转换。 - Ben Jacksonp1 <- as.period(i1, unit = 'days') ; p1 ; day(p1)
。请注意,由于闰年的存在,365天和1年不一定是相同的,lubridate就是考虑到这一点而构建的。 - alistaire