Hi wizards, I have the following function, I call R function from C. I execute this commands
dyn.load("difficult.so");
out <- .Call("difficult");
$mean [1] 0.65 $median [1] 0.65 However I would like to call difficult.R but in C , how in the following code:
pch <- array(dim=c(2,1)); pch[1] = 0.5; pch[2] = 0.8; out <- difficult(pch)$mean;
does somebody know how to do it ? Thanks in advance.
// C function
#include <Rdefines.h>
#include <Rinternals.h>
#include <stdlib.h>
SEXP difficult()
{
SEXP fun, pch;
SEXP e;
SEXP value;
PROTECT(e = allocVector(LANGSXP, 2));
fun = findFun(install("difficult"), R_GlobalEnv);
SETCAR(e, fun);
pch = allocVector(REALSXP, 2);
REAL(pch)[0] = 0.5;
REAL(pch)[1] = 0.8;
SETCADR(e, pch);
value = eval(e, R_GlobalEnv);
UNPROTECT(1);
return (value);
}
difficult <- function(vector)
{
mean <- mean(vector);
median <- median(vector);
return (list(mean=mean,median=median));
}
personal web site: http://www.geocities.com/ricardo_rios_sv/index.html