考虑以下几点:

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,但是我想坚持润滑。

最佳答案

除了使用as.numeric()之外,还可以尝试使用lubridate软件包中的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"

关于r - R-lubridate-将期间转换为数字计数月,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42994272/

10-12 19:21