是否有标准/通用方法/公式来计算R中两个日期之间的月数?
我正在寻找类似于MathWorks months function的东西
最佳答案
我只是说这很简单,但是difftime()
会在几周后停止。真奇怪
因此,一个可能的答案是修改一些东西:
# turn a date into a 'monthnumber' relative to an origin
R> monnb <- function(d) { lt <- as.POSIXlt(as.Date(d, origin="1900-01-01")); \
lt$year*12 + lt$mon }
# compute a month difference as a difference between two monnb's
R> mondf <- function(d1, d2) { monnb(d2) - monnb(d1) }
# take it for a spin
R> mondf(as.Date("2008-01-01"), Sys.Date())
[1] 24
R>
似乎正确。可以将其包装到一些简单的类结构中。或将其作为hack :)
编辑:似乎也与您的Mathworks示例一起工作:
R> mondf("2000-05-31", "2000-06-30")
[1] 1
R> mondf(c("2002-03-31", "2002-04-30", "2002-05-31"), "2002-06-30")
[1] 3 2 1
R>
作为练习,留给读者添加
EndOfMonth
标志:)编辑2:也许
difftime
忽略了它,因为没有可靠的方式来表达分数差异,该差异与其他单位的difftime
行为一致。关于r - 两个日期之间的月数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1995933/