本文介绍了计算R中的年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在R中有两个数据框。一个框有一个人的出生年份:

I have two data frames in R. One frame has a persons year of birth:

YEAR
/1931
/1924

,然后另一列显示了最近的时间。

and then another column shows a more recent time.

RECENT
09/08/2005
11/08/2005

我想做的是减去年数,以便可以按年数计算他们的年龄,但是我不确定该如何处理。请问有帮助吗?

What I want to do is subtract the years so that I can calculate their age in number of years, however I am not sure how to approach this. Any help please?

推荐答案

以下函数采用Date对象的向量并计算年龄,正确地计算了leap年。似乎是比任何其他答案都更简单的解决方案。

The following function takes a vectors of Date objects and calculates the ages, correctly accounting for leap years. Seems to be a simpler solution than any of the other answers.

age = function(from, to) {
  from_lt = as.POSIXlt(from)
  to_lt = as.POSIXlt(to)

  age = to_lt$year - from_lt$year

  ifelse(to_lt$mon < from_lt$mon |
         (to_lt$mon == from_lt$mon & to_lt$mday < from_lt$mday),
         age - 1, age)
}

这篇关于计算R中的年龄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 22:45