[Rd] Dates in C api
Oleg Sklyar
osklyar at ebi.ac.uk
Wed Sep 17 22:03:23 CEST 2008
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
> Phil.Lee at morganstanley.com
> --------------------------------------------------------
>
> 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 at 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
More information about the R-devel
mailing list