unique.data.table selecciona la última fila en lugar de la primera

vocaciónunique en una llavedata.table Tendrás líneas únicas para cada grupo. En caso de líneas duplicadas se tomará la primera. Cuando necesito la toma la última, en lugar de la última transacción temporal que uso.SD[.N]

library(data.table)
library(microbenchmark)

dt <- data.table(id=sample(letters, 10000, T), var=rnorm(10000), key="id")

microbenchmark(unique(dt), dt[, .SD[.N], by=id])
Unit: microseconds
                   expr      min        lq    median       uq        max neval
             unique(dt)  570.882  586.1155  595.8975  608.406   3209.122   100
 dt[, .SD[.N], by = id] 6532.739 6637.7745 6694.3820 6776.968 208264.433   100

¿Sabes una forma más rápida de hacer lo mismo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta