我有一个带有列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]
,这似乎有效(并且有意义)。但这是最简单的方法吗?