test <- data.table(x=sample.int(10, 1000000, replace=TRUE))
y <- test$x
test[,.N, by=x] # fast
test[,.N, by=y] # extremely slow
Почему во втором случае он медленный?
Это еще быстрее:
test[,y:=y]
test[,.N, by=y]
test[,y:=NULL]
Похоже, он плохо оптимизирован?