[Rcpp-devel] data.frame from R to C++?
deqiang sun
deqiangs at bcm.edu
Tue Apr 12 10:57:45 CEST 2011
Hi Dirk,
Thanks very much for your example. From this example I learned how to passing data back and forth between R and C++.
The example is R code and uses piece of C++ code in side R program.
Well, it's better if you put this example(by only making slight changes to make R embeded in C++) inside package RInside.
Accessing data by column name is the feature I ( and other people) usually want.
However, is there a way to access the data Frame by row number?
Regards.
Dsun
On Apr 8, 2011, at 9:56 AM, Dirk Eddelbuettel wrote:
>
> Ok, I now committed a slightly nice example to RcppExamples, a package I
> should revamp to contain more examples. In there, we now receive a
> data.frame, operate on each column, create a new data and return old and new.
>
> The core of the code (inside the try/catch protection) is
>
> // construct the data.frame object
> Rcpp::DataFrame DF = Rcpp::DataFrame(Dsexp);
>
> // and access each column by name
> Rcpp::IntegerVector a = DF["a"];
> Rcpp::CharacterVector b = DF["b"];
> Rcpp::DateVector c = DF["c"];
>
> // do something
> a[2] = 42;
> b[1] = "foo";
> c[0] = c[0] + 7; // move up a week
>
> // create a new data frame
> Rcpp::DataFrame NDF =
> Rcpp::DataFrame::create(Rcpp::Named("a")=a,
> Rcpp::Named("b")=b,
> Rcpp::Named("c")=c);
>
> // and return old and new in list
> return(Rcpp::List::create(Rcpp::Named("origDataFrame")=DF,
> Rcpp::Named("newDataFrame")=NDF));
>
>
> Dirk
> --
> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list