Вам нужно просто удалить операторы case_dt
и $
:
case_dt[,.(N=uniqueN(case.id)),by=territory]
Рассмотрим этот воспроизводимый пример:
library(data.table)
mtcars <- as.data.table(mtcars)
mtcars[,.(N = uniqueN(cyl)), by = gear]
gear N
1: 4 2
2: 3 3
3: 5 3
Это работает, потому что cyc
является подмножеством by = gear
.
В отличие от:
mtcars[,.(N = uniqueN(mtcars$cyl)), by = gear]
gear N
1: 4 3
2: 3 3
3: 5 3
Это потому, что вы вызываете uniqueN
на mtcars$cyl
из глобальной среды для каждой группы.
Так действительно , это все равно что называть это каждую группу:
uniqueN(mtcars$cyl)
[1] 3