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

Eri*_*tre 6 r lubridate

考虑以下事项:

library(lubridate)
period1 = weeks(2)
as.numeric(period1, "weeks")
> 2   # as expected 
Run Code Online (Sandbox Code Playgroud)

现在我试图用几个月做类似的事情:

period2= months(6)
as.numeric(period2, "months")
as.numeric(period2, "weeks")
>  26.08929  # OK
as.numeric(period2,"months")
>  0.04166667  # Not OK?
Run Code Online (Sandbox Code Playgroud)

这是一个错误lubridate吗?或者我做错了什么/错过了什么?

注意:我看过(旧)评论Have lubridate减法只返回一个数值,所以我想我也可以使用解决方法来使用,difftime但我想坚持使用lubridate。

小智 10

而不是使用lubridate 包中的as.numeric()try 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"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢伊山!我什至没有注意到“lubridate”中的这个功能——有太多需要知道的了! (2认同)