为什么365天等于80000年?
Why is 365 days equal to 80000 years?
我有一个 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 版本 3.3.0 日期为 2016-05-03,lubridate 版本 1.5.6。)
你误解了units
参数的意思。从文档中,
units a character string that specifies the type of units that num
refers to.
其中 num
是第一个参数。所以
duration(i1)
等同于
duration(i1, units = "seconds")
然而,
duration(i1, units = "days")
表示i1
是在days
中测得的;因此数量非常大。
[using duration
on an interval
object] should be disallowed. For conversion use as.duration
.
此外,上述代码中的错误现已通过禁止函数调用得到修复:
> duration(i1)
Error in .duration_from_num(num, units) :
First argument to `duration` constructor must be character or numeric. Supplied object of class 'Interval'
> as.duration(i1)
[1] "31536000s (~52.14 weeks)"
我有一个 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 版本 3.3.0 日期为 2016-05-03,lubridate 版本 1.5.6。)
你误解了units
参数的意思。从文档中,
units a character string that specifies the type of units that
num
refers to.
其中 num
是第一个参数。所以
duration(i1)
等同于
duration(i1, units = "seconds")
然而,
duration(i1, units = "days")
表示i1
是在days
中测得的;因此数量非常大。
[using
duration
on aninterval
object] should be disallowed. For conversion useas.duration
.
此外,上述代码中的错误现已通过禁止函数调用得到修复:
> duration(i1)
Error in .duration_from_num(num, units) :
First argument to `duration` constructor must be character or numeric. Supplied object of class 'Interval'
> as.duration(i1)
[1] "31536000s (~52.14 weeks)"