Re: [R] accesing slots of S4 class in C code

From: Douglas Bates <dmbates_at_gmail.com>
Date: Thu 18 Aug 2005 - 23:41:50 EST

On 8/17/05, Aniko Szabo <aniko.szabo@hci.utah.edu> wrote:
> I am trying to use a custom S4 object in my C code and I cannot get the
> access to its slots working.
>
>
>
> The following is a toy example, but even this crashes.
>
>
>
> In R I have:
>
>
>
> setClass("pd", representation(data="numeric"))
>
> x <- new("pd", data=1:5)
>
>
>
> test <- function(pd.obj) {
>
> res <- .C("TestFun", pd.obj)
>
> res}
>
>
>
> test(x)
>
>
>
> (Of couse I load the DLL as well.)
>
>
>
> The corresponding C file has:
>
>
>
> SEXP TestFun(SEXP pd_obj)
>
> {
>
> SEXP t=R_NilValue;
>
> PROTECT(t = GET_SLOT(pd_obj, install("data")));
>
> UNPROTECT(1);
>
> return(t);
>
> }

Your C code is set for the .Call interface, not the .C interface. Change the R code to

 res <- .Call("TestFun", pd.obj)

>
>
>
>
>
> What I hope to get as a result is the (1:5) vector.
>
> In the long term, the vector will be a multi-dimensional array and I
> will want to do calculations using its contents in the C program.
>
>
>
> Thanks for any help,
>
>
>
> Aniko
>
>
> Huntsman Cancer Institute wishes to promote open communication while protecting confidential and/or privileged information. If you have received this message in error, please inform the sender and delete all copies.
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Aug 18 23:48:37 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 15:29:20 EST