ú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?