对于 R data.table,如何使用 uniqueN() 来计算多列中的唯一/不同值?

Sha*_*ang 3 r unique dataframe data.table

假设我们有以下 R data.table(尽管dataframe原则上 a 也可以):

library(data.table)
new_dt = as.data.table(readcsv(...))
head(new_dt)
    name order_no  overlimit
1    Amy       32  TRUE
2   Jack       14  TRUE
3   Jack       16  TRUE
4   Dave       11  FALSE
5    Amy       22  TRUE
6   Jack       16  TRUE
7    Tom       19  FALSE
8  Larry       22  FALSE
9    Tom       89  FALSE
10  Dave       81  TRUE
11  Jack       67  TRUE
12   Tom       60  TRUE
13   Amy       23  FALSE
14  Jack       16  TRUE
Run Code Online (Sandbox Code Playgroud)

对于此任务, 的值order_no是无关紧要的——我想计算 和 的唯一行nameoverlimit

name    overlimit  distinct_groups
Amy     TRUE       2
Amy     FALSE      1
Jack    TRUE       4
Jack    FALSE      0
Dave    TRUE       1
Dave    FALSE      1
...
Run Code Online (Sandbox Code Playgroud)

是否只是在by参数中包含更多列?

JAD*_*JAD 5

要回答您的问题,是的,您可以将两列添加到参数中by

dt[, .(distinct_groups = uniqueN(order_no)), by = c("Name", "Overlimit")]
Run Code Online (Sandbox Code Playgroud)