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
_______________________________________________
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