R data.table过滤组大小

mal*_*ere 1 r data.table

我试图找到我的所有记录,data.table其中有多个行在字段f中具有值v.

例如,我们可以使用这些数据:

dt <- data.table(f1=c(1,2,3,4,5), f2=c(1,1,2,3,3))
Run Code Online (Sandbox Code Playgroud)

如果在现场寻找那个属性f2,我们会得到(注意没有(3,2)元组)

    f1 f2
1:  1  1
2:  2  1
3:  4  3
4:  5  3  
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是dt[.N>2,list(.N),by=f2],但这实际上保留了条目.N==1.

dt[.N>2,list(.N),by=f2]
   f2 N
1:  1 2
2:  2 1
3:  3 2
Run Code Online (Sandbox Code Playgroud)

另一个简单的猜测,dt[duplicated(dt$f2)]并没有做到这一点,因为它保留了结果之一的"重复".

dt[duplicated(dt$f2)]
   f1 f2
1:  2  1
2:  5  3
Run Code Online (Sandbox Code Playgroud)

那我该怎么做呢?

编辑添加示例

akr*_*run 9

问题不明确.基于标题,看起来我们想要提取行数(.N大于1)的所有组.

DT[, if(.N>1) .SD, by=f]
Run Code Online (Sandbox Code Playgroud)

但这value v in field f让人感到困惑.