[R] lang2(...) with two and more arguments

" Timur Elzhov " elzhov at mail.ru
Mon Nov 3 16:30:33 CET 2003


Dear R-help,

how could I create an R call in C code using lang2 with 2 and more
arguments? I tried this code:

SEXP f(SEXP fn, SEXP rho)
{
    SEXP R_fcall, x, y;

    PROTECT(R_fcall = lang2(fn, R_NilValue));
    PROTECT(x = allocVector(REALSXP, 1));
    PROTECT(y = allocVector(REALSXP, 1));

    REAL(x)[0] = 10;
    REAL(y)[0] = 20;

    SETCADR(R_fcall, x);
    SETCADR(R_fcall, y);

    UNPROTECT(3);

    return R_fcall;
}

.Call("f", c, new.env()) returns

`.Primitive("c")(20)', but not `.Primitive("c")(10, 20)',
as I expected. How can I recieve the disired result?

Thank you very much.

--
WBR,
Timur.




More information about the R-help mailing list