识别重复的行

时间:2014-07-30 16:03:23

标签: r dataset matching

我有一个更大的数据框(~50K行和50到75列),其中有少量行重复,比如75列中的7个。虽然使用duplicated(...)找到与上面的行重复的行很简单,但我希望能够提取重复的行和重复的行,或者是否(从之前的帖子中窃取)

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
d <- c('x','y','x','z','y','y','z','x')
df <- data.frame(a,b,d)
df
  a b d
1 A 1 x
2 A 1 y
3 A 2 x
4 B 4 z
5 B 1 y
6 B 1 y
7 C 2 z
8 C 2 x

duplicated(df[,c(1,2)])给了我第2,6和8行。第2行重复第1行,第6行重复第5行,第8行在第1列和第2列的基础上重复7次。所以我想查看第1行和2,看看d列中可能存在的差异(如果有的话)。很容易有8行3列,但我的问题要大得多。

总而言之,我正在寻找一种简单的方法来查找行索引,比如行1和2,5和6,以及基于50-75列的子集的7和8,所以我可以直观地比较基于子集的重复行。

思想?

1 个答案:

答案 0 :(得分:1)

which(duplicated(df[,1:2])|duplicated(df[,1:2],fromLast=T))
#[1] 1 2 5 6 7 8