Hi Mick,

Hope it went great!

Yes, this isn’t particularly memory efficient as you materialise the first 
subset, only to subset again with your second condition. The query within `[…]` 
can be optimised much easier when compared to chained expressions. 
What’s the rationale here for doing it this way? To take advantage of automatic 
indexing? It’d be great to have auto indexing optimised for complex expressions 
like `typeID %in% showID & transactionType == side` but until then, setting key 
and subsetting would be the best way. 

HTH,
Arun

On 20 Feb 2015 at 16:42:51, Mick Cooney ([email protected]) wrote:

I gave a talk about data.table last night to Dublin R and got a very  
interesting question at the end of it that I hadn't thought of before.  

I was showing how you can chain operations together in nice concise  
one liners, the specific example I gave was:  

show.dt <- trade.dt[typeID %in% showID]  
[transactionType == side]  
[, list(transactionID, transactTime,  
transactionType,  
typeID, typeName, quantity, price)];  

print(tail(show.dt, n = count));  

This code is written for the game Eve Online and is used to show the  
last n number of trades on one side of a trade that my character had  
done, and I used it as an example of operation chaining.  

I was asked at the end of talk if the chaining of the typeID and the  
transactionType was any different to using a logical AND, and my  
response was that I wasn't sure, but I figured it might be, as doing  
the logical AND would invoke a vector scan.  

He then asked about memory use, so in the above example, do all the  
subcopies of the tables get kept in memory during the invocation, in  
effect mushrooming the amount of memory required?  

If that was the case, I could imagine that for large tables it might  
be worth going with the logical operation to prevent the multiple  
copies being made?  


--  
Mick Cooney  
[email protected]  
_______________________________________________  
datatable-help mailing list  
[email protected]  
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help  
_______________________________________________
datatable-help mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help

Reply via email to