último por grupo para todas las columnas data.table

Me sorprendió hacer lo siguiente:

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

Pensé que era muy largo, entonces lo hice.

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 

Según tengo entendido, si conoce todas las filas para seleccionar y trabajar en la mayor parte del trabajo, no veo por qué aplicar esto a todas las columnas debería ser 10 veces más largo. ¿Estoy haciendo algo mal en el primer bit del código, esta es la única manera que conozco para seleccionar las últimas filas por grupo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta