1

如何在 R 中检测特定列的重复项?我知道 duplicated() 函数,但它会给出任何重复项,而我只对重复一个特定列感兴趣。例子:

> x = 1:5
> y=6:10
> z=11:15
> mat=cbind(x,y,x,x,y,z)
> mat
     x  y x x  y  z
[1,] 1  6 1 1  6 11
[2,] 2  7 2 2  7 12
[3,] 3  8 3 3  8 13
[4,] 4  9 4 4  9 14
[5,] 5 10 5 5 10 15

现在检查重复项

 > which(duplicated(mat, MARGIN=2))
 [1] 3 4 5

所以确实第 3,4 和 5 列在矩阵中是重复的,但我希望能够查询特定的列。例如

somehow_specific_duplicated(mat[,1], mat) 
[1] 3 4

任何人都知道实现这一目标的简单方法?

谢谢!

4

1 回答 1

0

你可以试试

unname(which(!colSums(mat[,1]!=mat))[-1])
#[1] 3 4

对于第二列

 unname(which(!colSums(mat[,2]!=mat))[-1])
 #[1] 5
于 2014-12-14T07:00:32.650 回答