Letzte nach Gruppe für alle Spalten data.table

Ich war überrascht, Folgendes zu tun:

R) system.time(lastOrder <- order[,lapply(.SD,tail,1),by="TRADER_ID,EXEC_IDATE"]);
utilisateur     système      écoulé 
       1.45        0.00        1.53 
R) nrow(order)
[1] 75301
R) ncol(order)
[1] 23

Dachte es wäre sehr lang, dann tat ich es

R) system.time(lastOrder <- order[,list(test=tail(EXEC_IDATE,1)),by="TRADER_ID,EXEC_IDATE"]);
utilisateur     système      écoulé 
       0.14        0.00        0.14 

Soweit ich weiß, sollte die Anwendung auf alle Spalten 10x länger sein, wenn Sie wissen, dass alle Zeilen ausgewählt und die meiste Arbeit ausgeführt wurde. Mache ich beim ersten Codebit etwas falsch? Nur so kann ich die letzten Zeilen nach Gruppe auswählen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage