R data.table筛选器和计数唯一性
我有以下格式的R data.table筛选器和计数唯一性,r,data.table,R,Data.table,我有以下格式的数据表 Class Value1 Value2 1 10 20 1 10 15 1 15 0 0 4 40 0 4 50 我想对Class=1的三行进行子集划分,然后计算该子集数据中Value1中的unique值的数量。 因此,在这种情况下,我的答案是2 尝试了unique([dt[,'Value1',by='Class']),但不起作用。
数据表
Class Value1 Value2
1 10 20
1 10 15
1 15 0
0 4 40
0 4 50
我想对Class=1
的三行进行子集划分,然后计算该子集数据中Value1
中的unique
值的数量。
因此,在这种情况下,我的答案是2
尝试了unique([dt[,'Value1',by='Class'])
,但不起作用。
谢谢!这里是一个带有数据的选项。表
中,我们通过在i
中指定逻辑表达式来对行进行子集,然后使用uniqueN
获取列“Value1”的唯一值的计数
library(data.table)
dt[Class == 1, .(un_val1 = uniqueN(Value1))]
这里是一个带有数据的选项。表
中,我们通过在i
中指定逻辑表达式来对行进行子集,然后使用uniqueN
获得列“Value1”的唯一
值的计数
library(data.table)
dt[Class == 1, .(un_val1 = uniqueN(Value1))]
谢谢!我唯一能做的就是将Class
存储在一个类似“Class\u var='Class'”的变量中,我看到dt[c(Class\u var)==1,(un\u val1=uniqueN(Value1))]````不同的行为方式。关于如何使用具有列名的变量获得类似的结果,有什么想法吗?@FlyingPickle为此,您可以使用多个选项,即dt[get(class\u var)==1,
或使用dt[eval(as.name(class\u var))==1,
谢谢!我唯一能做的就是将类
存储在一个变量中,比如`Class\u var='Class'```我看到dt[c(Class\u var)==1,。(un\u val1=uniqueN(Value1))]````不同的行为方式。关于如何使用具有列名的变量获得类似的结果,有什么想法吗?@FlyingPickle为此,您可以使用几个选项,即dt[get(class\u var)==1,
或使用dt[eval(as.name(class\u var))==1,