Sigal Blay wrote:
Thank you for the fast reply.
Below is a simplified version of my c function that I am currenctly using with a .C() call.
The values that has to be returned to R are the three outVectors.
If I need to convert .C to .Call,
How do I do it based on myFunction below?
Thank you for your help.
void myFunction(char **argv, int *inputVector, int *RoutVector1, double *RoutVector2, char **RoutVector3) {
int *outVector1;
double *outVector2;
char **outVector3;
int roof = 0;
roof = calculate_values ( argv[0], inputVector, &outVector1,
&outVector2, &outVector3 )
for(i=0;i<roof;i++) {
RoutVector1[i] = outVector1[i]; RoutVector2[i] = outVector2[i]; } return;
}
Well, you could read "Writing R Extensions" (Section 4.8). Your function will have to change significantly, though. I would create a list within the C-function (called "val" below) and populate the RoutVectors with it.
(I can't remember whether you'll need more than #include <R.h>. Again, I direct you to the documentation.)
SEXP myFunction(SEXP argv, SEXP inputVector) {
SEXP val;
PROTECT(val = allocVector(VECSXP, 3));
/* some code you'll have to write */
UNPROTECT(1);
return val;
}# in R
RoutVectors <- .Call("myFunction", argv, inputVector)--sundar
On Wed, Sep 01, 2004 at 10:16:59PM +0100, Prof Brian Ripley wrote:
On Wed, 1 Sep 2004, S. Blay wrote:
I need to retrieve several vectors of various types from a call to .C(), but I don't know their length in advance. Is there a way to do this without allocating an excessive amount of memory? If so, an example would be very helpful.
It would be very much easier to use .Call rather than .C.
Alternatively, generate and allocate in C on one C call and retrieve on a second, as rpart does.
-- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
