R - lubridate - 将周期转换为数字计数月份

时间:2017-03-24 08:01:44

标签: r lubridate

请考虑以下事项:

library(lubridate)
period1 = weeks(2)
as.numeric(period1, "weeks")
> 2   # as expected 

现在我想尝试与月份相似:

period2= months(6)
as.numeric(period2, "months")
as.numeric(period2, "weeks")
>  26.08929  # OK
as.numeric(period2,"months")
>  0.04166667  # Not OK?

这是lubridate中的错误吗?或者我做错了什么错了?

注意:我已经看过(旧)评论Have lubridate subtraction return only a numeric value,所以我想我也可以使用变通方法来使用difftime,但我想坚持使用lubridate。

1 个答案:

答案 0 :(得分:2)

而不是使用来自lubridate包的as.numeric()尝试time_length()

period2= months(6)
time_length(period2,unit="days")
#182.6
time_length(period2,unit="weeks")
#26.09
time_length(period2,unit="months")
#6.004
class(time_length(period2,unit="months"))
#"numeric"