Le 12/04/11 10:57, deqiang sun a écrit :
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?

No. You access the column, and then do whatever with each element, as in Dirk's example.

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 | e...@debian.org | http://dirk.eddelbuettel.com

--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
http://romain-francois.com
|- http://bit.ly/fhqbRC : Rcpp workshop in Chicago on April 28th
|- http://bit.ly/dFyZGB : Hydraulique au Montpellier Comedie Club
`- http://bit.ly/eVXit9 : Eponyme : 40 minutes stand up


_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to