[Rcpp-devel] Construct data.table object at the C++ level ?

Dirk Eddelbuettel edd at debian.org
Sat Nov 4 21:22:42 CET 2017


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.

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 <edd at 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 | edd at debian.org
| | >
| 
| -- 
| http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list