我一直在寻找一种有效的方法来计算和删除数据框中的重复行,同时保留它们第一次出现的索引。例如,如果我有一个数据框:
df<-data.frame(x=c(9.3,5.1,0.6,0.6,8.5,1.3,1.3,10.8),y=c(2.4,7.1,4.2,4.2,3.2,8.1,8.1,5.9))
ddply(df,names(df),nrow)
给我
    x   y   V1
1  0.6 4.2  2
2  1.3 8.1  2
3  5.1 7.1  1
4  8.5 3.2  1
5  9.3 2.4  1
6 10.8 5.9  1
但我想保留重复行的原始索引(连同行名)。喜欢:
    x   y   V1
1  9.3 2.4  1
2  5.1 7.1  1
3  0.6 4.2  2
5  8.5 3.2  1
6  1.3 8.1  2
8 10.8 5.9  1
“重复”返回原始行名(此处为 {1 2 3 5 6 8}),但不计算出现次数。我尝试自己编写函数,但它们都没有足够的效率来处理大数据。我的数据框最多可以有几百万行(尽管列通常是 5 到 10)。