On Sep 3, 2008, at 9:51 , EBo wrote:


While doing some embedded programming and trying to figure out how to generate
a hand coded SEXP equivalent of the line
"t.test(x,conf.level=(1-p))$conf.int[2]" I had an idea for an addition to the
embedded API.

There are a number of hidden or static parse functions (R_ParseBuffer,
R_Parse1Buffer, etc.) which take an IoBuffer* and returns a parsed tree. If one or more of these functions were exported to the Rembedded.h API we could
do something like the following:

 R_Expr = R_Parse1Buffer(&R_ConsoleIob, 0, &status);
 if (PARSE_OK==status) {
   ...
   value = eval(R_CurrentExpr, rho);
   ...
 }

or possibly simplifying the interface to take the CMDL string:

R_Expr = R_Parse1Line("t.test(x,conf.level=(1-p))$conf.int[2]", &status);


Why do you think is R_ParseVector not sufficient for this? That is what most of use use to achieve exactly what you describe... For something that even mimics the continuation behavior of the R console have a look at parseString function in Rserve.

Cheers,
Simon


I think this would be a useful addition to the embedding interface, and hopefully not difficult to incorporate by someone more experienced with the internals than I currently am. I took a few hours to look into adding this interface, but will not have time to try to do so for a few months -- I have a couple of hard and fast deadlines over the next couple of weeks. So, I would
like to make the suggestion and participate in the dialog.

 Best regards,

 EBo --

ps: if someone can suggest how to hand code
"t.test(x,conf.level=(1-p))$conf.int[2]" so I can embedd it I would be most
appreciative.

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel



______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to