[Rcpp-devel] NA value for dates
Dirk Eddelbuettel
edd at debian.org
Fri Oct 5 23:12:14 CEST 2012
On 5 October 2012 at 23:55, Theodore Lytras wrote:
| Στις Παρ 05 Οκτ 2012, ο/η Dirk Eddelbuettel έγραψε:
| > On 5 October 2012 at 21:39, Theodore Lytras wrote:
| > | Hello all,
| > |
| > | I am trying to pass from C++ to R a DateVector with a few missing items
| > | (NAs). I can't seem to find a way, though.
| > | There does not seem to be a NA_DATE (like NA_REAL, etc), and the default
| > | constructor for Rcpp::Date creates a date of "-5877641-06-23".
| [snip]
| > I've never tried this, but as Dates in R really are just integers since the
| > epoch -- so maybe the NA_INTEGER aka R_NaInt will work?
|
| I tried this already - it doesn't.
| Neither do the other constants (NA_REAL and NA_LOGICAL).
| I also tried Rcpp::Date(NA_INTEGER).
| They all create a date of "-5877641-06-23".
|
| > At a more conceptual level, NA shouldn't really be in dates, right? Either
| > is a valid date, or it is missing (NULL). There simply is no such thing as
| > Feb 30 or April 31.
|
| Not really, because NA is the natural choice to indicate a missing value. If
| for example one has a vector with 10 date observations and wants to indicate
| that the 3rd is missing, one has to use NA. With NULL one gets a vector of
| size 9. NA is necessary to have for all data types.
|
| And it is supported in the R interpreter, for example:
|
| a <- as.Date(c(3883, NA, 15120), origin="1970-1-1")
| a
| [1] "1980-08-19" NA "2011-05-26"
|
| Shouldn't there be a special value (like R_NaInt) or a special object or
| something, that represents NA dates??
Maybe. Feel like working on a patch? src/RcppDate.cpp is pretty
straightforward and mostly free of template magic. It may just need a layer
of NA testing I didn't add when I wrote that.
I am with you as R can do this:
R> as.Date(c(1,2,NA,777))
[1] "1970-01-02" "1970-01-03" NA "1972-02-17"
R>
maybe Rcpp should too. But you're the one with the itch to scratch... so
help would be appreciated.
Dirk
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list