So I should use the R parser?

Actually I'm trying to develop a JS interface for R. So I'm terribly
confused with the design aspects. Won't parsing be slower?

Is there a better way to do what I'm doing other than parsing?

Regards

Abhijit


On Wed, SSep 16, 2009 at 12:48 PM, Romain Francois <
romain.franc...@dbmail.com> wrote:

> Hi,
>
> Luckily, R has its own parser, so you don't have to reimplement it. Just
> parse your string 'SWX.RET[1:6,c("SBI,"SPI","SII")]' and eval the parsed
> expression(s). The R_ParseVector function will help you.
>
> Romain
>
>
> On 09/16/2009 09:02 AM, Abhijit Bera wrote:
>
>>
>> I'm trying to get a reference to this object in C
>>
>> SWX.RET[1:6,c("SBI,"SPI","SII")]
>>
>> While i am able to access and use a plain SWX.RET object, I'm getting
>> confused on how to create an object with the array subscripts like above.
>>
>> Here is what I tried to do. It doesn't work because "[" is obviously not
>> an
>> operation or function on SWX.RET. So how do I get a reference to this
>> object?
>>
>> #include<stdio.h>
>> #include<R.h>
>> #include<Rinternals.h>
>> #include<Rdefines.h>
>> #include<Rembedded.h>
>>
>> int main(int argc, char** argv)
>> {
>>
>>     SEXP e,c,portSpec,portData,portConstr,portVal,tsAssets;
>>     int errorOccurred,nx,ny,i,j;
>>     double *v;
>>     const char *x,*y;
>>
>>     Rf_initEmbeddedR(argc, argv);
>>
>>     // loading fPortfolio
>>     PROTECT(e = lang2(install("library"), mkString("fPortfolio")));
>>     R_tryEval(e, R_GlobalEnv, NULL);
>>     UNPROTECT(1);
>>
>>
>>     // creating a default portfolioSpec object
>>     PROTECT(e=lang1(install("portfolioSpec")));
>>     PROTECT(portSpec=R_tryEval(e,R_GlobalEnv, NULL));
>>
>>     // creating a portfolioData object
>>
>>
>>
>> PROTECT(e=lang4(install("c"),mkString("SBI"),mkString("SPI"),mkString("SII")));
>>     PROTECT(c=R_tryEval(e,R_GlobalEnv,NULL));
>>
>>     PROTECT(e=lang3(install("["),install("SWX.RET"),c));
>>     PROTECT(portData=R_tryEval(e,R_GlobalEnv,NULL));
>>
>>     PROTECT(e=lang2(install("print"),portData));
>>     R_tryEval(e,R_GlobalEnv,NULL);
>>
>>
>>     UNPROTECT(3);
>>
>>     Rf_endEmbeddedR(0);
>>
>>     return 0;
>> }
>>
>
> --
> Romain Francois
> Professional R Enthusiast
> +33(0) 6 28 91 30 30
> http://romainfrancois.blog.free.fr
> |- http://tr.im/yw8E : New R package : sos
> |- http://tr.im/y8y0 : search the graph gallery from R
> `- http://tr.im/y8wY : new R package : ant
>
>

        [[alternative HTML version deleted]]

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

Reply via email to