Hi

I have confusion in evaluating this expression using C. It's similar to my
previous expression with the addition of row and column specifiers. I'm
confused how to create such objects.

Covariance <- round(cov(100 * SWX.RET[1:6,c("SBI","SPI","SII")]),

I thought of creating vectors for 1:6 and c("SBI","SPI","SII")

But I don't know how to create the object  SWX.RET[1:6,c("SBI","SPI","SII")]

On Tue, Aug 25, 2009 at 6:11 PM, Abhijit Bera <abhib...@gmail.com> wrote:

> Hi
>
> I think I have asked these questions earlier, but I been able to find
> answers from the documentation (which I found poorly written in several
> places). Will someone be kind enough to give me answers and enlighten me?
> (as in explain with CODE?)
>
> I want to embed R in my application and use the fPortfolio package for
> carrying out risk management computations. Right now I'm reading the
> Rmetrics Ebook and trying to convert the various examples into embedded C
> code.
>
> Coming from a strictly C background, I have slight difficulty in
> comprehending a functional language like R and it gets worse when I try to
> embed R into a procedural language like C. So here is a list of my doubts:
>
> 1) I am very confused on how the lang 1 2 3 4 ... set of functions work. I
> haven't found any relevant documentation explaining it clearly. I have a
> vague idea but still I cannot understand how I would evaluate an R
> expression like Covariance <- round(cov(100 * SWX.RET), digits = 4) using
> lang, install and R_tryEval.
>
> 2) What exactly does install do?
>
> 3) I wrote the following code:
>
> #include <Rinternals.h>
> #include <Rembedded.h>
>
> int main (int argc, char** argv) {
>
>     SEXP e,val;
>     int errorOccurred;
>
>     Rf_initEmbeddedR(argc, argv);
>
>     // library("fPortfolio")
>     PROTECT(e = lang2(install("library"), mkString("fPortfolio")));
>     R_tryEval(e, R_GlobalEnv, NULL);
>     UNPROTECT(1);
>
>    // colMeans(SWX.RET)
>     PROTECT(e = lang2(install("colMeans"), install("SWX.RET")));
>     val = (R_tryEval(e, NULL, &errorOccurred));
>
>     Rf_PrintValue(val);
>
>     return 0;
>
> }
>
> When I tried :
>
> >mean(SWX.RET)
>
> in the R prompt I got the following output:
>
>          SBI          SPI          SII         LP25         LP40
> LP60
> 4.660521e-06 2.153198e-04 2.033869e-04 1.388886e-04 1.349041e-04
> 1.226859e-04
>
>
> However when I replaced colMeans with mean in the C code above I got a mean
> of the means (0.0001366410) of all the columns when Rf_PrintValue was
> called. Using colMeans gave me the output as shown above. Why does this
> happen? How do I get the above output using mean?
>
> 4) From the above code segment, how can I deal with the SEXPREC val which
> is returned by R_tryEval in the above code and convert it to my own local
> vector datatype? How do I access the values of val? val will now be a
> timeseries so how do i convert it?
>
>
> Thanks
>
> Abhijit Bera
>
>
>
>
>
>

        [[alternative HTML version deleted]]

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

Reply via email to