[R] Turn dates into age

frenchcr frenchcr at btinternet.com
Sun Nov 8 21:11:31 CET 2009



why do you use 365.25?


dates<-as.character(data[,"date_commissioned"]); # convert dates to
characters
#dates[1:10]
#[1] "19910101" "19860101" "19910101" "19860101" "19910101" "19910101"
"19910101" "19910101" "19910101" "19910101"

dateObs <- as.Date(dates,format="%Y%m%d")
#dateObs[1:10]
#[1] "1991-01-01" "1986-01-01" "1991-01-01" "1986-01-01" "1991-01-01"
"1991-01-01" "1991-01-01" "1991-01-01" "1991-01-01" "1991-01-01"

today <- Sys.Date()
x.date <- as.Date(dateObs, format="%Y%m%d")

AGE <- round(as.vector(difftime(today , x.date, units='day') / 365.25))





frenchcr wrote:
> 
> 
> it sure does thank you!
> 
> 
>> will this work for you
>>
>> x <- c('19910101', '19950302', '20010502')
>> today <- Sys.Date()
>> x.date <- as.Date(x, format="%Y%m%d")
>> round(as.vector(difftime(today , x.date, units='day') / 365.25))
> [1] 19 15  9
>>
> 
> 
> On Sun, Nov 8, 2009 at 2:44 PM,  <frenchcr at btinternet.com> wrote:
>> Hi Jim,
>>
>> Thanks for the quick reply...not sure what you mean by frame of
>> reference(only been using R for 4 days)...to clarify, i need to turn my
>> dates from 1999-10-01 into 1999 then i subtract 2009 -1999 to get an age
>> of 10. The column im working on has 312,000 rows and some have NA in them
>> as we have no dates for that item.
>>
>> To recap, the column is just a bunch of dates with some field empty, i
>> want to change the column from "date of commision" to "age of asset"
>>
>> Cheers
>> Chris.
> 
> 
> 
> 
> jholtman wrote:
>> 
>> What is the frame of reference to determine the age?   Check out
>> 'difftime'.
>> 
>> On Sun, Nov 8, 2009 at 1:50 PM, frenchcr <frenchcr at btinternet.com> wrote:
>>>
>>> Ive got a big column of dates (also some fields dont have a date so they
>>> have
>>> NA instead),
>>> that i have converted into date format as so...
>>>
>>>
>>> dates<-as.character(data[,"date_commissioned"]); # converted dates to
>>> characters
>>> dates[1:10]
>>> [1] "19910101" "19860101" "19910101" "19860101" "19910101" "19910101"
>>> "19910101" "19910101" "19910101" "19910101"
>>>
>>> dateObs <- as.Date(dates,format="%Y%m%d")
>>> dateObs[1:10]
>>> [1] "1991-01-01" "1986-01-01" "1991-01-01" "1986-01-01" "1991-01-01"
>>> "1991-01-01" "1991-01-01" "1991-01-01" "1991-01-01" "1991-01-01"
>>>
>>>
>>>
>>> Now i need to turn the dates into AGE, how do i do it? Im not worried
>>> about
>>> fractions of years, whole years would do.
>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Turn-dates-into-age-tp26256656p26256656.html
>>> Sent from the R help mailing list archive at Nabble.com.
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>> 
>> 
>> 
>> -- 
>> Jim Holtman
>> Cincinnati, OH
>> +1 513 646 9390
>> 
>> What is the problem that you are trying to solve?
>> 
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>> 
>> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Turn-dates-into-age-tp26256656p26257435.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list