如何计算R的月差

时间:2015-09-15 10:30:08

标签: r date lubridate

我的日期格式为2015-03(即年月)。现在我想计算两个日期之间的月差。

示例:日期2015-032014-12之间的差异应为3或4,因为12月到3月是3个月或4个月,具体取决于我们是否考虑12月。

2 个答案:

答案 0 :(得分:5)

您可以通过diff

来完成
require(lubridate)
a <- c("2015-03","2014-12")
a_parsed <- ymd(paste0(a,"-01")) # There might be a nicer solution to get the dates

diff(year(a_parsed)) * 12 + diff(month(a_parsed)) # Results in 3

使用+ 1来&#34;考虑12月和#34;

说明:
diff(year(a_parsed))为您提供了由此产生的月份* 12的差异。 diff(month(a_parsed))导致月度差异,忽略年度差异。结合它会导致您要求的每月差异。

答案 1 :(得分:1)

a <- "2015-03"
b <- "2014-12"
a <- unlist(strsplit(a, "-"))
b <- unlist(strsplit(b, "-"))
a <- (as.numeric(a[1])*12) + as.numeric(a[2])
b <- (as.numeric(b[1])*12) + as.numeric(b[2])
difference <- diff(c(b,a))
difference

结果是3