【发布时间】:2013-07-10 21:28:35
【问题描述】:
在键入的data.table 上调用unique,您将在每个组中拥有唯一的行。如果有重复的行,将采用第一行。当我需要最后一个而不是(通常是最后一个临时事务)时,我使用.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
你知道更快的方法吗?
【问题讨论】:
-
我很惊讶
unique.data.table和duplicated.data.table不支持fromLast参数,如unique.data.frame和duplicated.data.frame
标签: r data.table