Can someone offer some advice on how to properly evaluate a SYMSXP from a .Call ?
I have the following in R: variable xn, with an attribute "mu" which references the variable mu in the global environment. I know "references" is a loose term; mu was defined in this fashion as a way to implement deferred binding: foo <- function(x,mu) { attr(x,"mu") <- substitute(mu) x } mu <- 2.0 xn <- foo(rnorm(100),mu) > typeof(attr(xn,"mu")) [1] "symbol" > eval(attr(xn,"mu")) [1] 2 > In a .Call, I am attempting to eval the SYMSXP as follows: SEXP mu_ = Rf_getAttrib(x_,Rf_install("mu")); if(TYPEOF(mu_)==SYMSXP) { mu_ = Rf_eval(Rf_lang1(mu_),R_GlobalEnv); } However, when running this code, I get the following error: Error in logp(xn) : could not find function "mu" Do I need to create an expression of c("get", "mu") to force the name lookup to evaluate the SYMSXP? Thanks, Whit ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel