how to calculate month difference in R

懵懂的女人 提交于 2019-12-12 20:13:41

问题


I have dates of format 2015-03 (i.e year-month). Now I want to calculate the month difference in between 2 dates.

Example: difference between dates 2015-03 and 2014-12 should be 3 or 4 as December to March is 3 months or 4 months depending on whether we consider December or not.


回答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

The result of this is 3




回答2:


You can do it via 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

Use + 1 to "consider December"

Explanation:
diff(year(a_parsed)) gives you the difference in the years, * 12 the month resulting from this. diff(month(a_parsed)) results in the monthly difference, ignoring the yearly difference. Combined it results in the Monthly difference you asked for.



来源:https://stackoverflow.com/questions/32583759/how-to-calculate-month-difference-in-r

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!