[R] as.Date() results depend on order of data within vector?
mark at wardle.org
Sun Jan 7 13:01:32 CET 2007
The as.Date() function appears to give different results depending on
the order of the vector passed into it.
d1 = c("1900-01-01", "2007-01-01","","2001-05-03")
d2 = c("", "1900-01-01", "2007-01-01","2001-05-03")
as.Date(d1) # gives correct results
as.Date(d2) # fails with error (* see below)
This problem does not arise if the dates are NA rather than an empty
string, but my data is coming via RODBC and I still don't have NAs
passed across properly.
I might add that I initially noticed this behaviour when using RODBC's
sqlQuery() function call, and I initially had difficulty explaining why
one column of dates was passed correctly, but another failed. The
failing column was a "date of death" column where it was NA ("") for
I've come up with two workarounds that work. The first is to sort the
data at the SQL level, ensuring the initial record is not null. The
second is to use sqlQuery() with as.is=T option, and then do the sorting
and conversion afterwards.
Is the behaviour of as.Date() shown above as expected/designed?
(*) "Error in fromchar(x) : character string is not in a standard
R version 2.4.0 (2006-10-03) powerpc-apple-darwin8.7.0 locale:
attached base packages:
 "methods" "stats" "graphics" "grDevices" "utils"
other attached packages:
More information about the R-help