Hi,

The new Rcpp::DataFrame follows R's tradition and automatically converts character vectors into factors:

> fun <- cppfunction( signature(), '
+         IntegerVector v = IntegerVector::create(1,2,3);
+         std::vector<std::string> s(3);
+         s[0] = "a";
+         s[1] = "b";
+         s[2] = "c";
+ return DataFrame::create(Named("a")=v, Named("b")=s);
+ ' )
> fun()
  a b
1 1 a
2 2 b
3 3 c
> fun()[["b"]]
[1] a b c
Levels: a b c


Is this good or bad ? I think it is bad as we don't have a way to turn this off... we can set the options( "stringsAsFactors" ) to FALSE

Should we allow something like this:

DataFrame::create(
        _["x"] = v ,
        _["y"] = s,
        _["stringsAsFactors"] = false )

or maybe have a variable like this to pilot the option:

static bool DataFrame::stringsAsFactors = false ;

Romain

--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://bit.ly/9aKDM9 : embed images in Rd documents
|- http://tr.im/OIXN : raster images and RImageJ
|- http://tr.im/OcQe : Rcpp 0.7.7

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

Reply via email to