last by group dla wszystkich kolumn data.table

Byłem zaskoczony, wykonując następujące czynności:

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

Myślałem, że to bardzo długo, a potem tak

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 

Z tego, co rozumiem, jeśli wiesz, że wszystkie wiersze do wyboru i pracują nad większością prac, są zrobione, to nie widzę powodu, by zastosować to do wszystkich kolumn powinno być 10x dłuższe. Czy robię coś złego na pierwszym bicie kodu, to jedyny sposób, w jaki mogę wybrać ostatnie wiersze według grupy

questionAnswers(2)

yourAnswerToTheQuestion