[Rd] R and C pointers

From: Adrian Duşa <dusa.adrian_at_gmail.com>
Date: Tue, 19 Jun 2012 18:40:31 +0300

ink1">Dear R devel,

Apologies for these (most probably trivial) questions, doing my first attempt to call C from R (and actually learning C in the process).

I need to pass a matrix to C, and after reading R-exts.pdf (many times), I was unable to find how to handle matrices at C-level... except for, what probably is the answer, that matrices are in fact vectors with dimensions.

This is a sample code I am using at C level: ±±±±±±±±±±±±±±±±±±±±±±±±
# include <R.h>
# include <Rinternals.h>
# include <R_ext/Rdynload.h>

SEXP foo(SEXP x) {

    SEXP dimx;
    double *px, *pdimx;

    PROTECT(dimx = getAttrib(x, R_DimSymbol));

    px = REAL(x);


The question is: how to create pointers to dimx (in order to extract individual values)?

I tried:
pdimx = REAL(dimx);

This is where R complains that:
REAL() can only be applied to a 'numeric', not a 'integer'

Much in the same line, what would be the procedure to create pointers to a logical vector y?
I tried:
PROTECT(y = coerceVector(y, LGLSXP));
py = REAL(y);

where R throws a similar error.

Thanks very much in advance,

Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd.
050025 Bucharest sector 5
Tel.:+40 21 3126618 \
       +40 21 3120210 / int.101
Fax: +40 21 3158391

R-devel_at_r-project.org mailing list
Received on Tue 19 Jun 2012 - 16:32:44 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 20 Jun 2012 - 06:10:30 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive