I came across the below mis-feature/bug using match with POSIXlt objects (from strptime) in R 2.11.1 (though this appears to be an old issue).
> x <- as.POSIXlt(Sys.Date()) > table <- as.POSIXlt(Sys.Date()+0:5) > length(x) [1] 1 > x %in% table # I expect TRUE [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > match(x, table) # I expect 1 [1] NA NA NA NA NA NA NA NA NA This behavior seemed more plausible when the length of a POSIXlt object was 9 (back in the day), however since the length was redefined, the length of x no longer matches the length of the match function output, as specified by the ?match documentation: "A vector of the same length as 'x'". I would normally suggest that we add a POSIXlt method for match that converts x into POSIXct or character first. However, match does not appear to be generic. Below is a possible rewrite of match that appears to work as desired. match <- function(x, table, nomatch = NA_integer_, incomparables = NULL) .Internal(match(if(is.factor(x)||inherits(x, "POSIXlt")) as.character(x) else x, if(is.factor(table)||inherits(table, "POSIXlt")) as.character(table) else table, nomatch, incomparables)) That said, I understand some people may be very sensitive to the speed of the match function, and may prefer a simple change to the ?match documentation noting this (odd) behavior for POSIXlt. Thanks, Robert R.version _ platform x86_64-unknown-linux-gnu arch x86_64 os linux-gnu system x86_64, linux-gnu status major 2 minor 11.1 year 2010 month 05 day 31 svn rev 52157 language R version.string R version 2.11.1 (2010-05-31) Robert McGehee, CFA Geode Capital Management, LLC One Post Office Square, 28th Floor | Boston, MA | 02109 Tel: 617/392-8396 Fax:617/476-6389 mailto:robert.mcge...@geodecapital.com >This e-mail, and any attachments hereto, are intended for use by the addressee(s) only and may contain information that is (i) confidential information of Geode Capital Management, LLC and/or its affiliates, and/or (ii) proprietary information of Geode Capital Management, LLC and/or its affiliates. If you are not the intended recipient of this e-mail, or if you have otherwise received this e-mail in error, please immediately notify me by telephone (you may call collect), or by e-mail, and please permanently delete the original, any print outs and any copies of the foregoing. Any dissemination, distribution or copying of this e-mail is strictly prohibited. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel