[R] calculating the number of days from dates

Bob Green bgreen at dyson.brisnet.org.au
Fri Dec 14 13:05:19 CET 2007


I gather variants of this question have been asked previously. I have 
done some reading but only became more confused, as I suspect what I 
am trying to do is more basic than other applications.

The following code readily calculates the difference in days between two dates:

  newdays <- ISOdate(2005, 5,12) - ISOdate(2006, 12, 22)

However, I wanted to be able to deduct the dates in one variable from 
the dates in another variable, resulting in a new variable - e.g the 
difference in days between the two dates. Below is a sample of my 
data. My questions:

1. I tried changing the data to dates via as.Date. Is this necessary 
or do I need to alter the date format itself, e.g to 12/12/78 or some 
other format?
2. I gather there are various packages as well as date formats.What 
is the most straight forward approach to calculate the difference 
between two dates, as below.

 > dates <- read.csv("c:\\dates.csv",header=T)
 > dates
           v1         v2
1 12/12/1978 12/12/2005
2 23/01/1965 23/09/2001
3 24/12/2004 16/03/2007
4  3/03/2003  4/04/2004
5  8/11/2006  1/05/2007

 > class(dates$v1)
[1] "factor"
 > class(dates$v2)
[1] "factor"

 > dates <- read.csv("c:\\dates.csv",header=T, 
as.Date(as.character(dates) "%d/%m/%Y"))
Error: syntax error, unexpected STR_CONST, expecting ',' in "dates <- 
read.csv("c:\\dates.csv",header=T, as.Date(as.character(dates) "%d/%m/%Y""

Any assistance is much appreciated,


More information about the R-help mailing list