On Wed, Dec 3, 2008 at 1:57 PM, Gavin Simpson <[EMAIL PROTECTED]> wrote: > 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.
In fact what it says is that x may be numeric OR difftime. Also the above does not explain it in any case because: > "+.Date"(alpha1, alpha2) [1] "2009-02-15" > alpha1+alpha2 Time difference of 14290 days Warning message: Incompatible methods ("Ops.difftime", "+.Date") for "+" > > The OP can avoid the warning by: > >> alpha2 + as.numeric(alpha1) > [1] "2009-02-15" His question was how to avoid using as.numeric. > > 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 <[EMAIL PROTECTED]> 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@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@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 > %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% > > ______________________________________________ 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.