获取一个值重复的行

时间:2016-06-01 14:10:38

标签: r

我有一个带有列foo的数据表。我想在列foo中获取所有具有重复的行。

我认为dt[duplicated(dt$foo),]应该这样做,但是对于foo中具有重复项的每个值,它不会返回第一行,只返回其他具有重复行的行。

我不知道我是否清楚,所以这是一个例子:

> dt <- data.table(id = c(1,2,3,4,5,6,7,8,9), foo = c("a","b","b","b","c","c","d","e","e"))
> print(dt) 
   id foo
1:  1   a
2:  2   b
3:  3   b
4:  4   b
5:  5   c
6:  6   c
7:  7   d
8:  8   e
9:  9   e

> dt[duplicated(dt$foo),]
   id foo
1:  3   b
2:  4   b
3:  6   c
4:  9   e

我想要的地方:

   id foo
2:  2   b
3:  3   b
4:  4   b
5:  5   c
6:  6   c
8:  8   e
9:  9   e

如何获取所有行?

感谢。

编辑:好的我发现了这个dt[foo %in% dt[duplicated(dt$foo),]$foo],这似乎有效(并且有意义)。但这是最简单的方法吗?

0 个答案:

没有答案