Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Have lubridate subtraction return only a numeric value

Tags:

I have one variable called Started which is the date on which human subjects enrolled in a study and another variable called dos1 which is the date upon which the subject last had surgery. I want to work out how many months since their last surgery to the day of enrollment. I tried:

as.period(syrrupan$Started-syrrupan$dos1,units=c("month")) 

I expected this to give me something like:

14, 18, 1, 26  

With each number being the number of months.

Instead I get:

1 year, -4 months, -5 days and -1 hours   1 year, -5 months, -23 days and -1 hours   1 year, -7 months, 2 days and -1 hours   1 year, -8 months, -28 days and 1 hour   1 year, -7 months, -23 days and 1 hour.    

How can I get just the numeric value of months?

like image 404
Farrel Avatar asked Sep 22 '10 01:09

Farrel


1 Answers

You could try using difftime instead, ie:

difftime(syrrupan$Started,syrrupan$dos1,units="days") 

Note that this will give you an object of class difftime, if you want a numeric vector, wrap an as.numeric around it. Note also that you can't choose months as an option for units, but you should really stick with a time unit that has a fixed length.

like image 172
James Avatar answered Nov 13 '22 17:11

James