根据任何先前的时间计算年龄

时间:2018-12-06 15:50:19

标签: r date datetime date-formatting date-conversion

有没有办法找到这样的问题的解决方案;

如果我2010年1月10日的年龄是2岁,那么2012年4月10日的年龄是多少?

亲切的问候

2 个答案:

答案 0 :(得分:1)

只需使用difftime()计算差异,然后加上年龄。像这样:

earlier_age <- 2
diff <- as.numeric(difftime(latest_date, earlier_date), units="years") 
#make sure that dates are actually date objects (using as.Date())
new_age <- diff + earlier_age


#So for your example:
latest_date <- as.Date("10/April/2012", format = "%d/%B/%Y")
earlier_date <- as.Date("10/jan/2010", format = "%d/%b/%Y")
earlier_age <- 2

diff <- as.numeric(difftime(latest_date, earlier_date), units="days")/365.25
new_age <- diff + earlier_age

您可以根据需要将单位更改为星期,小时等

答案 1 :(得分:0)

您可以设置日期,例如:

x <- as.Date("2010-01-10")
y <- as.Date("2012-04-10")

>y-x
Time difference of 821 days

从这里开始,只需将其添加到2年即可。让我知道是否有帮助!