On 4 November 2017 at 15:22, Dirk Eddelbuettel wrote: | | On 2 November 2017 at 23:24, Dirk Eddelbuettel wrote: | | | | On 2 November 2017 at 15:36, Matt Dowle wrote: | | | I replied in the issue. | | | | So did I, now that I am back online after a company event. | | | | I'll fill a simple concrete event: constructing a DT from a DF and then using | | nanotime to construct sane nanotime/bit64 objects. All fine and trivial, | | but would be nicer to do this -- and more -- and the C++ level. | | Ok, the 'create a nanotime vector from int64_t' part is now sorted out [1], | and it trivially becomes a column in a data.frame and hence ... | | | | | I don't know what you're asking for here. A data.table is a list of | | | same-length vectors, so it's almost trivial to create. Then just add the | | | | We understand that part. | | | | We are less sure about to get to the bits that are not data.frame, and how to | | do so at the C level. | | ... in a data.table. But I still call setDT() via Rcpp::Function. I'll see | if I can play fast and loose and just set that S3 attribute directly.
Yes, seems to work (at least for a fresh and reasonable data.frame object): //Rcpp::Function dt("setDT"); //return dt(df); df.attr("class") = Rcpp::CharacterVector::create("data.table", "data.frame"); return(df); Dirk | | I'll try to remind myself to write a Rcpp Gallery piece once I have all the | pieces. Having data.table objects with nanosecond-resolution time is pretty | slick. | | Dirk | | [1] Mostly, still uses one call via Rcpp::Function() to create the S4 object | which we may be able to amortise, but that may not really matter. | | | | Dirk | | | | | attributes which setDT() does from R level, and trace that through to see | | | what it does. I don't really get what you're asking for as on the face of | | | it it's simple. I had asked in the issue about whether it's the recycling | | | you need but I'm not clear. | | | | | | On Thu, Nov 2, 2017 at 2:35 PM, Dirk Eddelbuettel <e...@debian.org> wrote: | | | | | | > | | | > Does anybody have any (public) code constructing data.table objects? | | | > | | | > I can of course do as we do for data.frame, which is (essentially) | | | > constructing a List and setting a class attribute at end. But I gather | | | > someone may have done something somewhere already? C code works too, | | | > making | | | > it shorter always works... | | | > | | | > Dirk | | | > | | | > PS Long-parked related wishlist ticket is at | | | > https://github.com/Rdatatable/data.table/issues/1694 | | | > | | | > -- | | | > http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org | | | > | | | | -- | | http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org | | -- | http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org _______________________________________________ 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