Modifying a Data Frame

Dirk Eddelbuettel — written Dec 14, 2012 — source

Data frames can be manipulated using the DataFrame class. The indvidiual vectors composing a data frame can be accessed by name, modified, and then recombined into a new data frame.

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
DataFrame modifyDataFrame(DataFrame df) {

  // access the columns
  IntegerVector a = df["a"];
  CharacterVector b = df["b"];
  
  // make some changes
  a[2] = 42;
  b[1] = "foo";       

  // return a new data frame
  return DataFrame::create(_["a"]= a, _["b"]= b);
}

Note the use of the _["a"] syntax to create named arguments to the DataFrame::create function.

The function returns a modified copy of the data frame:

df <- data.frame(a = c(1, 2, 3),
                 b = c("x", "y", "z"))

modifyDataFrame(df)
   a   b
1  1   x
2  2 foo
3 42   z

tags: dataframe 

Related Articles