Hello,
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,
Bob
calculating the number of days from dates
5 messages · Bob Green, Henrique Dallazuanna, Knut Krueger +1 more
Try this:
dates <- read.csv("c:\\dates.csv",header=T)
dates[,1] <- as.Date(dates[,1], "%d/%m/%Y")
dates[,2] <- as.Date(dates[,2], "%d/%m/%Y")
transform(dates,
Dif=V2-V1)
On 14/12/2007, Bob Green <bgreen at dyson.brisnet.org.au> wrote:
Hello, 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, Bob
______________________________________________ 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.
Henrique Dallazuanna Curitiba-Paran?-Brasil 25? 25' 40" S 49? 16' 22" O
Bob Green schrieb:
> 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"
What about chron library:
dts <- dates(c("02/27/92", "02/27/92", "01/14/92",
"02/28/92", "02/01/92"))
dts
# [1] 02/27/92 02/27/92 01/14/92 02/28/92 02/01/92
tms <- times(c("23:03:20", "22:29:56", "01:03:30",
"18:21:03", "16:56:26"))
tms
# [1] 23:03:20 22:29:56 01:03:30 18:21:03 16:56:26
x <- chron(dates = dts, times = tms)
x
# [1] (02/27/92 23:03:19) (02/27/92 22:29:56) (01/14/92 01:03:30)
# [4] (02/28/92 18:21:03) (02/01/92 16:56:26)
# We can add or subtract scalars (representing days) to dates or
# chron objects:
c(dts[1], dts[1] + 10)
# [1] 02/27/92 03/08/92
dts[1] - 31
# [1] 01/27/92
Knut
"KK" == Knut Krueger <rh at family-krueger.com>
on Sat, 15 Dec 2007 08:39:02 +0100 writes:
KK> Bob Green schrieb:
>>
>> > 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"
>>
>>
KK> What about chron library:
it's a >> package << , not a library, please!
and as Henrique has shown it's really not needed for the question.
There's the "Date" (S3) class, and even a "difftime" one
for time *differences*
See
?as.Date
?difftime
and also note the output of
methods(class = "Date")
Martin
KK> dts <- dates(c("02/27/92", "02/27/92", "01/14/92",
KK> "02/28/92", "02/01/92"))
KK> dts
KK> # [1] 02/27/92 02/27/92 01/14/92 02/28/92 02/01/92
KK> tms <- times(c("23:03:20", "22:29:56", "01:03:30",
KK> "18:21:03", "16:56:26"))
KK> tms
KK> # [1] 23:03:20 22:29:56 01:03:30 18:21:03 16:56:26
KK> x <- chron(dates = dts, times = tms)
KK> x
KK> # [1] (02/27/92 23:03:19) (02/27/92 22:29:56) (01/14/92 01:03:30)
KK> # [4] (02/28/92 18:21:03) (02/01/92 16:56:26)
KK> # We can add or subtract scalars (representing days) to dates or
KK> # chron objects:
KK> c(dts[1], dts[1] + 10)
KK> # [1] 02/27/92 03/08/92
KK> dts[1] - 31
KK> # [1] 01/27/92
KK> Knut
KK> ______________________________________________
KK> R-help at r-project.org mailing list
KK> https://stat.ethz.ch/mailman/listinfo/r-help
KK> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
KK> and provide commented, minimal, self-contained, reproducible code.
1 day later
it's a >> package << , not a library, please!
Sorry for using library instead package, but library() is one command for using packages. Therefore I (and it seems that i am not the only one) used library instead package. Knut