[R] date operations

Gavin Simpson gavin.simpson at ucl.ac.uk
Wed Dec 3 19:57:39 CET 2008


On Wed, 2008-12-03 at 13:18 -0500, Gabor Grothendieck wrote:
> What is odd is that it seems to run ok if we call "+.Date" directly:
> 
> > "+.Date"(alpha1, alpha2)
> [1] "2009-02-15"

It also works if you flip the ordering:

> alpha2 + alpha1
[1] "2009-02-15"
Warning message:
Incompatible methods ("+.Date", "Ops.difftime") for "+"

It is just a warning, but one should check that the answer is correct
given the perceived problem with different classes of objects. 

Why it works is not odd if you look at the help for ?`+.Date`, which
shows that for this method (correct term?) we need 'date' + 'x', where
'date' is an object of class Date and 'x' is numeric.

The OP can avoid the warning by:

> alpha2 + as.numeric(alpha1)
[1] "2009-02-15"

If you put alpha1 first (class difftime) that method gets used and
alpha2 is coerced to numeric to complete the operation:

> alpha1+alpha2
Time difference of 14290 days
Warning message:
Incompatible methods ("Ops.difftime", "+.Date") for "+"
> as.numeric(alpha2) + 56
[1] 14290

To answer the OP's question about conversion, no you don't need to
convert Date objects to numerics to work with them. You just need to be
aware of method dispatch for `+()` and check that adding objects of
differing classes makes sense.

Of course, this assumes that the OP wanted the answer as an object of
class "Date"...?

G

> 
> On Tue, Dec 2, 2008 at 4:10 PM, Christophe Dutang <dutangc at gmail.com> wrote:
> > Hi all,
> >
> > I'm dealing with dates in R (2.7.2), but some basic operations raise a
> > warning.
> >
> > Incompatible methods ("+.Date", "Ops.difftime") for "+"
> >
> > I saw this topic in this mailing list, but I do not understand what to
> > do...
> >
> > cf. https://stat.ethz.ch/pipermail/r-help/2008-June/165842.html
> >
> > Do I have to convert Dates to numeric?
> >
> > Thanks in advance
> >
> > Christophe
> >
> > PS : R script used
> >
> > alpha2=as.Date("2008-12-21")
> > alpha1=as.Date("2008-12-21")-as.Date("2008-10-26")
> > alpha1
> > alpha2
> > alpha1+alpha2
> >
> >
> >        [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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.
> >
> 
> ______________________________________________
> 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.
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20081203/c2cd375f/attachment.bin>


More information about the R-help mailing list