df <- data.frame(c("11-JUL-2004","11-JUL-2005","11-JUL-2006","11-JUL-2007","11-JUL-2008"),
c("11-JUN-1999","11-JUN-2000","11-JUN-2001","11-JUN-2002","11-JUN-2003"))
names(df) <- c("X1","X2")
df <- within(df, X1 <- as.Date(X1, format = "%d-%b-%Y"))
df <- within(df, X2 <- as.Date(X2, format = "%d-%b-%Y"))
然後difftime()
將給予周的區別:
> with(df, difftime(X1, X2, units = "weeks"))
Time differences in weeks
[1] 265.2857 265.1429 265.1429 265.1429 265.2857
或者,如果我們使用布蘭登的近似值:
> with(df, difftime(X1, X2)/30.416)
Time differences in days
[1] 61.05339 61.02052 61.02052 61.02052 61.05339
最近我可以lubridate得到(由爲突出德克)是(使用上面的df
)
> m <- with(df, as.period(subtract_dates(X1, X2)))
> m
[1] 5 years and 1 month 5 years and 1 month 5 years and 1 month 5 years and 1 month 5 years and 1 month
> str(m)
Classes ‘period’ and 'data.frame': 5 obs. of 6 variables:
$ year : int 5 5 5 5 5
$ month : int 1 1 1 1 1
$ day : num 0 0 0 0 0
$ hour : int 0 0 0 0 0
$ minute: int 0 0 0 0 0
$ second: num 0 0 0 0 0
這個問題的正確答案將完全取決於你如何定義「一個月的差異」。這是30天嗎?它是否從一個月到另一個月過渡,無論這兩個日期之間有多少天?還有別的嗎? – 2010-10-05 17:44:02
30.416一般是我在SPSS中使用的。 – 2010-10-05 17:55:18
你想要日期之間的實際月數? – hadley 2010-10-05 18:41:34