A列中每个唯一元素的唯一行数

时间:2014-01-22 09:19:31

标签: r data.table

我试图找到data.table中唯一行的数量,对于“A”中的每个唯一元素。这是我做的:

DT <- data.table(A = rep(1:3, each=4), B = rep(1:4, each=3), C = rep(1:2, 6), key = "A")

unique(DT,by=names(DT)) #Gives me each unique row in DT
#    A B C
# 1: 1 1 1
# 2: 1 1 2
# 3: 1 2 2
# 4: 2 2 1
# 5: 2 2 2
# 6: 2 3 1
# 7: 2 3 2
# 8: 3 3 1
# 9: 3 4 2
#10: 3 4 1
nrow(unique(DT,by=names(DT))) #Gives me the number of unique rows in DT
# [1] 10

DT[,nrow(unique(DT,by=names(DT))),by=A] #Doesn't give me the number of unique rows for each unique DT$A.
#   A V1
# 1: 1 10
# 2: 2 10
# 3: 3 10

谁能看到我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

我认为你想使用.SD(每个组的子表)

DT[,nrow(unique(.SD)),by=A]

#   A V1
#1: 1  3
#2: 2  4
#3: 3  3

答案 1 :(得分:2)

因为nrow(unique(DT,by=names(DT))10,您基本上是在说DT[,10,by=A]