小编shu*_*hes的帖子

R data.table中的条件唯一计数

我想按组计算数据集中的冲突数.我觉得在data.table中有一个简单的方法可以做到这一点,但似乎无法弄明白.我已经创建了一个虚拟变量来告诉我data.table的每一行是否存在冲突:

testDT <- data.table(Name = c(rep('A',6),rep('B',5)),
                     Division = c(rep(11,6),rep(12,5)),
                     ID = c(205,205,NA,201,201,201,203,203,203,204,NA),
                     Conflict = c(0,0,0,1,1,1,1,1,1,1,0))
Run Code Online (Sandbox Code Playgroud)

我需要计算冲突标志为1的非NA ID的唯一数量,并将新计数中的该计数应用于每个Name-Division分组.答案应该是这样的:

testDT[, Count := c(rep(1,6),rep(2,5))]

    Name Division  ID Conflict Count
 1:    A       11 205        0     1
 2:    A       11 205        0     1
 3:    A       11  NA        0     1
 4:    A       11 201        1     1
 5:    A       11 201        1     1
 6:    A       11 201        1     1
 7:    B       12 203        1     2
 8:    B       12 203        1     2
 9:    B       12 203        1     2 …
Run Code Online (Sandbox Code Playgroud)

r data.table

2
推荐指数
1
解决办法
2879
查看次数

标签 统计

data.table ×1

r ×1