[Rd] using "= matrix (...)" in .C calls
clayton.springer at pharma.novartis.com
clayton.springer at pharma.novartis.com
Thu Jun 17 17:43:33 CEST 2004
Dear R-devel,
I am trying to alter rpart so that it makes additional calculations when
growing the tree.
In the "rpart.s" there is a call to the C routine:
rp <- .C("s_to_rp2",
as.integer(nobs),
as.integer(nsplit),
as.integer(nodes),
as.integer(ncat),
as.integer(cats *!isord),
as.integer(max(cats)),
as.integer(xval),
which = integer(nobs),
cptable = matrix(double(numcp*cpcol), nrow=cpcol),
dsplit = matrix(double(1), nsplit,3),
isplit = matrix(integer(1), nsplit,3),
csplit = catmat,
dnode = matrix(double(1), nodes, 3+numresp),
inode = matrix(integer(1), nodes, 6),
PACKAGE = "rpart")
Which in communicates with the C code in "s_to_rp.c"
void s_to_rp2(Sint *n, Sint *nsplit, Sint *nnode, Sint
*ncat,
Sint *numcat, Sint *maxcat, Sint *xvals, Sint
*which,
double *cptable, double *dsplit, Sint *isplit, Sint
*csplit,
double *dnode, Sint *inode)
Apparently the lines like:
dsplit = matrix(double(1), nsplit,3),
Cause C arrays to be pulled over into an R matrix. However I can't figure
out the syntax from context nor can I find documentation.
I have an array which was created and exists in the "C" part of the code,
but I can not figure out how to pull it over to the "R" side.
The array was ALLOCed as 1-D array (of size nodes * variables), and
ultimately I would like to get into matrix of nodes * variables.
Any help or advice would be appreciated.
thanks in advance,
Clayton
[[alternative HTML version deleted]]
More information about the R-devel
mailing list