Believe it or not, it works either way: I haven't fully figured out the logic yet (except to note that I had the logic reversed below):
Ops.Date <- function (e1, e2) { if (nargs() == 1) stop("unary ", .Generic, " not defined for Date objects") boolean <- switch(.Generic, "<" = , ">" = , "==" = , "!=" = , "<=" = , ">=" = TRUE, FALSE) if (!boolean) stop(.Generic, " not defined for Date objects") if (nchar(e1)) e1 <- as.Date(e1) if (nchar(e2)) e2 <- as.Date(e2) NextMethod(.Generic) } datechar1 = "1999-12-03" datechar2 = "2000-12-07" date1 = as.Date(datechar1) date2 = as.Date(datechar2) date1 == datechar1 datechar1 == date1 datechar1 < date2 date2 > datechar1 I also propose as.Date.numeric <- function(x, ...) { class(x) <- "Date" x } this takes a number of seconds since 1970 and converts it into a Date object ... cheers Ben Gabor Grothendieck wrote: > Note that the first argument still cannot be character > since Ops.Date won't get dispatched in that case. > > On 6/24/06, Ben Bolker <[EMAIL PROTECTED]> wrote: >> Ops.Date <- function (e1, e2) >> { >> if (nargs() == 1) >> stop("unary ", .Generic, " not defined for Date objects") >> boolean <- switch(.Generic, "<" = , ">" = , "==" = , "!=" = , >> "<=" = , ">=" = TRUE, FALSE) >> if (!boolean) >> stop(.Generic, " not defined for Date objects") >> + if (!nchar(e1)) e1 <- as.Date(e1) >> + if (!nchar(e2)) e2 <- as.Date(e2) >> NextMethod(.Generic) >> } >> >> adding the above two lines to Ops.Date makes, e.g. >> >> as.Date("1999-12-13") == "1999-06-14" >> >> behave as "expected". >> >> Does it seem like a good idea? >> (I was inspired by a student's confusion, and by >> the fact that Ops.factor does a similar thing -- although >> in this case it seems more sensible to promote the >> character to a Date rather than demoting the Date >> to a character (in which case comparisons might not >> work right?)) >> >> Similar questions might apply to Ops.POSIXt ... >> >> Ben Bolker >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel