Dates are number of days since 1970-01-01 that is it.

to get data of Date in C:

library(inline)
code = 'Rprintf("%f", REAL(x)[0]); return R_NilValue;'
f = cfunction(signature(x="double"), body=code)
na = f(Sys.date())

to create an object of class Date:
--- in C ---
SEXP res = allocVector(REALSXP, n);
return res;
// one can assign class here, but one can also do it on return to R
--- in R ---
res = .Call("myDateFun", n)
class(res) = "Date"

Best,
Oleg

Lee, Philip (IT) wrote:
r-devel,

I've been trying to write a C plugin for R, and I'm struggling to
understand how dates are represented.

I can create a date in R:
mydate<-as.Date(1, origin="1900-01-01") mydate
[1] "1900-01-02"

When I pass my date to a plugin, though, it's type is that of a real.
There doesn't seem to be a date type in Rinternals.h, is there a way to
recognize that a value is a date rather than a real?

Equally, does anyone know if it's possible to create date values in the
C api?

Thanks,
Phil Lee

Philip Lee
Morgan Stanley | Technology
750 Seventh Avenue, 12th Floor | New York, NY  10019
[EMAIL PROTECTED]
--------------------------------------------------------

NOTICE: If received in error, please destroy and notify sender. Sender does not 
intend to waive confidentiality or privilege. Use of this email is prohibited 
when received in error.

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

--
Dr Oleg Sklyar * EBI-EMBL, Cambridge CB10 1SD, UK * +44-1223-494466

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to