[Rd] suggestion of new API function for embedded programming.

Simon Urbanek simon.urbanek at r-project.org
Thu Sep 4 16:17:47 CEST 2008


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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>



More information about the R-devel mailing list