先回答问题:
两种方案
1. 如果需要保留小数点
> library(lubridate)
as.numeric(as.period(interval(y1,y2),unit="years"),unit="years")
[1] 30.15999
这个式子中函数自己可以查看帮助文件,注意其中as.period的对象这里在制定unit的前提下一定要是interval返回的结果,想改变单位,改变最后一个unit=后面的参数即可:"years","days","hours","mins",默认是秒,月份不好用,用年数乘以24即可
2 不保留小数点,还是用as.period函数
> as.period(interval(y1,y2),unit="year")@year
[1] 30
> as.period(interval(y1,y2),unit="month")@month
[1] 361
> as.period(interval(y1,y2),unit="day")@day
[1] 11016
这两个方法都会考虑闰年和时区。