Hello,
I would like to be able to calculate the age of someone at a particular
date. Both dates are date objects. Here is what I have come up with:
floor(as.numeric(sampleInfo$Date.of.DIAGNOSIS-sampleInfo$Date.of.birth)/365.25)
Is this the best approach? or is there an inbuilt function? I have
looked at difftime but that does not seem to allow output in years.
Many thanks
Dan
--
**************************************************************
Daniel Brewer, Ph.D.
Institute of Cancer Research
Email: daniel.brewer at icr.ac.uk
**************************************************************
The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company
Limited by Guarantee, Registered in England under Company No. 534147 with its
Registered Office at 123 Old Brompton Road, London SW7 3RP.
This e-mail message is confidential and for use by the addre...{{dropped}}
Wayne.W.Jones at shell.com
2007-Sep-24 10:37 UTC
[R] Calculate difference between dates in years
look at the as.Date function
e.g.
as.Date("2007-04-21")- as.Date("2000-04-21")
also look at the chron library.
Regards
Wayne
-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org]On Behalf Of Daniel Brewer
Sent: 24 September 2007 11:23
To: r-help at stat.math.ethz.ch
Subject: [R] Calculate difference between dates in years
Hello,
I would like to be able to calculate the age of someone at a particular
date. Both dates are date objects. Here is what I have come up with:
floor(as.numeric(sampleInfo$Date.of.DIAGNOSIS-sampleInfo$Date.of.birth)/365.25)
Is this the best approach? or is there an inbuilt function? I have
looked at difftime but that does not seem to allow output in years.
Many thanks
Dan
--
**************************************************************
Daniel Brewer, Ph.D.
Institute of Cancer Research
Email: daniel.brewer at icr.ac.uk
**************************************************************
The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company
Limited by Guarantee, Registered in England under Company No. 534147 with its
Registered Office at 123 Old Brompton Road, London SW7 3RP.
This e-mail message is confidential and for use by the =\ ad...{{dropped}}
Daniel Brewer wrote:> > I would like to be able to calculate the age of someone at a particular > date. Both dates are date objects. Here is what I have come up with: > > floor(as.numeric(sampleInfo$Date.of.DIAGNOSIS- > sampleInfo$Date.of.birth)/365.25) > > Is this the best approach? >No - leap years and such. You know that there are _not_ 365.25 days in one year, don't you? floor(as.numeric(as.Date("2100-02-28") - as.Date("1900-02-28"))/365.25) # 199, should be 200 A less extreme counter-example: floor(as.numeric(as.Date("2008-02-28") - as.Date("2007-02-28"))/365.25) # 0, should be 1 Alberto Monteiro (purely destructive - sorry)