[R] Evaluating expressions from within C code
    Timur Elzhov 
    Timur.Elzhov at jinr.ru
       
    Mon Jan 13 11:03:02 CET 2003
    
    
  
Dear R experts!
I want to evaluate expressions from within C code. For instance,
I want this code:
    /* ============ -- C code -- ============== */
    
    #include <R.h>
    #include <Rinternals.h>
    
    SEXP foo(SEXP expr, SEXP rho)
    {
        SEXP x;
    
        PROTECT(x = allocVector(REALSXP, 1));
        REAL(x)[0] = 1;
    
        UNPROTECT(1);
    
        return eval(expr, rho);
    }
    /* ======================================== */
    .Call("foo", quote(x + 1), new.env())
to return 1 + 1 == 2. But it certainly does not work:
    .Call("foo", quote(x + 1), new.env())
    Error: Object "x" not found
and if I define x in R, it works:
    x <- 1
    .Call("foo", quote(x + 1), new.env())
    [1] 2
So, is there a way to solve my problem, namely to
find and evaluate expressions that appears in C code?
Thank you very much.
--
WBR,
Timur.
    
    
More information about the R-help
mailing list