首页 > 解决方案 > data.table 过滤和计数唯一性

问题描述

我有data.table以下格式

Class    Value1  Value2
1         10      20
1         10      15
1         15      0
0          4      40
0          4      50

我想对这三行进行子集化Class =1 ,然后计算该子集化数据中的unique值的数量Value1。所以我在这种情况下的答案会被2 尝试unique([dt[, 'Value1', by='Class']),但没有奏效。谢谢!

标签: rdata.table

解决方案


在这里,是一个选项data.table,我们通过在 中指定逻辑表达式来对行进行子集化,然后获取列“Value1”i的值的计数uniqueuniqueN

library(data.table)
dt[Class == 1, .(un_val1 = uniqueN(Value1))]

推荐阅读