[R] Passing a Matrix to .C?

Thomas Lumley tlumley at u.washington.edu
Mon May 6 05:53:57 CEST 2002

On Mon, 6 May 2002, Jess Mar wrote:

> Hi,
> Is it possible to pass a matrix object in R to the .C
> function?
> Moreover is it possible to have .C return a matrix object
> back into R?

Yes, and yes (mostly).

A matrix is just a vector with dimension attributes added, so it can be
passed to and from .C like any other vector.  The dimension information
won't be passed, so you may have to supply it explicitly with other
arguments, but that's usual in C.  So, for example, a 3x4 matrix of reals
goes into C as a pointer to 12 doubles.

If you construct a new matrix in C it will be passed back as a vector, and
you will need to use matrix() to specify dimensions, but if you modify the
matrix you were passed the dimensions won't be lost.

There are examples in the R source, eg, rowsum()


Thomas Lumley			Asst. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list