计算两个日期类型字符串之间的时间以获得R中的年份

时间:2014-03-27 08:25:18

标签: r date datetime date-arithmetic

d <-c("1948/05/28","1952/03/27","1994/12/09")
as.Date(d)
[1] "1948-05-28" "1952-03-27" "1994-12-09"
as.Date("2014-03-20")
[1] "2014-03-20"
as.Date("2014-03-20")-as.Date(d)
Time differences in days
[1] 24037 22638  7041
(as.Date("2014-03-20")-as.Date(d))/365
Time differences in days
[1] 65.85479 62.02192 19.29041

我使用(as.Date(“2014-03-20”) - as.Date(d))/ 365来获取它们之间的年份,是否有更正式的方法来做到这一点?

3 个答案:

答案 0 :(得分:0)

lubridate::as.interval()完全解决了这个问题。

答案 1 :(得分:0)

尝试这样做以确保它选择天数作为单位。由于闰年,365.25略好于365:

as.numeric(difftime(as.Date("2014-03-20"), as.Date(d), unit = "days")) / 365.25

答案 2 :(得分:0)

这是G.格洛腾迪克回答的更有效的修改:

(as.integer(as.Date("2014-03-20")) - as.integer(as.Date(d))) / 365.25