[prev in list] [next in list] [prev in thread] [next in thread]
List: r-help
Subject: Re: [R] date calculation
From: "Shi, Tao" <shidaxia () yahoo ! com>
Date: 2010-10-30 20:16:57
Message-ID: 182820.19744.qm () web30801 ! mail ! mud ! yahoo ! com
[Download RAW message or body]
I think this demonstrate on of the differences between Class 'Date' and 'POSIXlt'. \
Thanks, Marc!
...Tao
From: Marc Schwartz <marc_schwartz@me.com>
To: Ben Bolker <bbolker@gmail.com>
Cc: "Shi, Tao" <shidaxia@yahoo.com>; "r-help@stat.math.ethz.ch" \
<r-help@stat.math.ethz.ch>
Sent: Saturday, October 30, 2010 7:48:05 AM
Subject: Re: [R] date calculation
On Oct 30, 2010, at 9:22 AM, Ben Bolker wrote:
> On 10-10-30 02:02 AM, Shi, Tao wrote:
> > Hi Ben,
> >
> > That must be the case! In fact if I do:
> >
> > > difftime(strptime("24NOV2004", format="%d%b%Y"), \
> > > strptime("13MAY2004",format="%d%b%Y"), units="days", tz="GMT")
> > Time difference of 195 days
> >
> >
> > which supports your claim.
> >
> > Can someone from the R development team confirm this?
> >
> > Thanks!
> >
> > ...Tao
> >
> >
>
> It sounds like you think this is a bug. It's not (although it's
> arguably not what you want). The general advice when using dates and
> time in R is to use the *least* specific date format that will do what
> you want, i.e. don't use a format that incorporates time zone
> information (daylight savings time) information if you don't want to
> deal with these complexities.
>
> I would suggest the chron package:
>
> library(chron)
> diff(chron(dates.=c("24/11/2004","13/05/2004"),format="d/m/y"))
Ben,
If time and time zone are not relevant, any reason not to use:
> diff(as.Date(c("13/05/2004", "24/11/2004"), format = "%d/%m/%Y"))
Time difference of 195 days
or perhaps conceptually easier:
Date2 <- as.Date("24/11/2004", format = "%d/%m/%Y")
Date1 <- as.Date("13/05/2004", format = "%d/%m/%Y")
> Date2 - Date1
Time difference of 195 days
R has built in arithmetic operations for such dates, without the need to use another \
package, since they are effectively numerics with a Date class:
> str(Date1)
Class 'Date' num 12551
> str(Date2)
Class 'Date' num 12746
?
HTH,
Marc Schwartz
> >
> >
> >
> > ----- Original Message -----
> > > From:Ben Bolker <bbolker@gmail.com>
> > > To:r-help@stat.math.ethz.ch
> > > Cc:
> > > Sent:Friday, October 29, 2010 7:54:53 PM
> > > Subject:Re: [R] date calculation
> > >
> > >
> > > Shi, Tao <shidaxia <at>
> > > href="http://yahoo.com">yahoo.com> writes:
> >
> > > Could someone
> > > explain to me why the following result is not a integer?
> > >
> > > >
> > > difftime(strptime("24NOV2004", format="%d%b%Y"), strptime("13MAY2004",
> > >
> > > > format="%d%b%Y"), units="days")
> > > Time difference of 195.0417
> > > days
> >
> > Presumably because this goes across a daylight-savings
> > > time
> > adjustment? 0.0417=1/24 days is 1 hour ...
> >
> > Ben
> > > Bolker
[[alternative HTML version deleted]]
______________________________________________
R-help@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.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic