本文介绍了R-lubridate-将期间转换为数字计数月的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请考虑以下事项:

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

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

Now I am trying to do similar with months:

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

这是 lubridate 中的错误吗?还是我在做/想做错什么事?

Is this a bug in lubridate? Or something wrong I am doing/missing?

注意:我见过(旧)备注具有lubridate减法返回只是一个数字值,所以我想我也可以使用变通方法来使用 difftime ,但是我想坚持润滑.

Note: I have seen (old) remark Have lubridate subtraction return only a numeric value, so I guess I may also use workaround to use difftime but I would like to stick to lubridate.

推荐答案

而不是使用lubridate软件包中的 as.numeric()尝试 time_length():

Instead of using as.numeric() try time_length() from lubridate package:

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-lubridate-将期间转换为数字计数月的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 02:37