[Rcpp-devel] code explanation

guillaume chaumet guillaumechaumet at gmail.com
Wed Jun 10 20:08:56 CEST 2015


I found the explanation alone.
The "list to data.frame" conversion was done by simply: returned_frame.attr(
"class") = "data.frame";

This is my solution for a transposed data.frame

## The "R"code for the list:

mylist=list(c("1" , "", "0" , "112.6336"),c("2" , "*" , "20" , "113.0659"),
c("3" , "" , "40" , "111.5833"),c("4" , "" , "60" ,"110.9704"))


// The Cpp code
#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
List CheapDataFrameBuilder(List a) {
    List returned_frame = clone(a);
    StringVector c1(returned_frame.length());
    StringVector c2(returned_frame.length());
    StringVector c3(returned_frame.length());
    StringVector c4(returned_frame.length());
    StringVector vector(4);

    for (int j = 0; j < returned_frame.length(); ++j) {
        vector=returned_frame(j);
        c1(j) = vector(0);
        c2(j) = vector(1);
        c3(j) = vector(2);
        c4(j) = vector(3);
    }
    return Rcpp::DataFrame::create(Rcpp::Named("Frame")=c1,
    Rcpp::Named("Sync")=c2,
    Rcpp::Named("Time")=c3,
    Rcpp::Named("Point_1")=c4);
}

Everything works, however I want to convert the first, the third and the
forth vector into a NumericVector.
I have try:
NumericVector c1=as<NumericVector>(c1)
from Hadley website but:
error: redefinition of 'c1' with a different type: 'Vector<14>' vs
'Vector<16>'

Did I miss something?

Cheers

G


2015-06-10 12:45 GMT+02:00 guillaume chaumet <guillaumechaumet at gmail.com>:

> Dear List,
> Could I have some explanation comments on this code:
> https://github.com/jjallaire/rcpp-gallery/blob/gh-pages/src/2013-01-22-faster-data-frame-creation.cpp
> ?
> I just want to transpose the resulting data frame. However, I want to do
> it myself but I don't understand the code.
>
> Thank you for your time
>
> Cheers
>
> Guillaume
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20150610/30aa222c/attachment.html>


More information about the Rcpp-devel mailing list