[R] Time data
Gabor Grothendieck
ggrothendieck at gmail.com
Tue Dec 20 15:29:59 CET 2005
On 12/20/05, Marc Bernard <bernarduse1 at yahoo.fr> wrote:
> Dear All, I wonder how to compute the age from the date of birth and the date of examination. Suppose that have the following data:
>
> df <- as.data.frame(rbind(c(1,"10/08/1950","15/03/1998"), c(1,"10/08/1950","20/07/1998"), c(1,"10/08/1950","23/10/1998")))
>
> names(df) <- c("ID", "date_birth", "date_exam")
>
> where:
> date_birth: is the date of birth
> date_exam: date of examination
>
> I used the following program to compute the value of the age :
>
First ensure that df stores its dates using "Date" class in the first
place. If your data is stored in the correct representation then
everything becomes easier subsequently:
fmt <- "%d/%m/%Y"
df[,2] <- as.Date(df[,2], fmt)
df[,3] <- as.Date(df[,3], fmt)
# converting them to numeric gives the number of days since
# the Epoch and one can just subtact those:
(as.numeric(df$date_exam) - as..numeric(df$date_birth)) / 365
R News 4/1 Help Desk article has more info on dates.
> difftime(strptime(as.character(df$date_exam), '%d/%m/%Y'), strptime(as.character(df$date_birth), '%d/%m/%Y'))/365.25
>
> which gives me as an output:
>
> > Time differences of 47.59491, 47.94251, 48.20260 days
>
> theses values are actually the 3 ages (but
>
> My questions are:
>
> 1- Why in the output it says "days" instead of "years")
>
> 2- How can I obtain the output as a numeric vector, without the statement "Time difference of ....". This is in order to use it in my calculations.
>
> 3- Is there a way quicker and less redondant to compute the age form the date_birth and date_exam?
>
> Thanks a lot,
>
> Bernard,
>
>
>
> ---------------------------------
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
More information about the R-help
mailing list