2014-12-14 5 views
1

Как обнаружить в R-дубликатах конкретные столбцы? Я знаю функцию duplicated(), но она дает любые дубликаты, в то время как мне интересно, только если дублируется один конкретный столбец. Пример:R: обнаружение дублированных * конкретных * столбцов

> 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 

Кто-нибудь знает, как легко достичь этого?

Спасибо!

ответ

0

Вы можете попробовать

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

Для второго столбца

unname(which(!colSums(mat[,2]!=mat))[-1]) 
#[1] 5 
+0

Спасибо !! Это именно то, что мне нужно! : D – Ruslan

+0

@Ruslan Нет проблем. Рад, что это помогло – akrun