[R] unique rows

(Ted Harding) Ted.Harding at nessie.mcc.ac.uk
Sat Jan 29 15:26:31 CET 2005


On 29-Jan-05 dax42 wrote:
> Dear list,
> 
> I would like to extract from a matrix all those rows, that are unique.
> By unique, I don't mean the unique that is accomplished by the function
> unique(), though...
> 
> Consider the following example:
>  > h
>       [,1] [,2]
> [1,]    4    4
> [2,]    1    4
> [3,]    4    1
> 
> Now unique(h) returns exactly the same - because 1 4 and 4 1 is not the
> same for that function.
> What I would like to see, though, are only the first two rows (or the 
> first and the third, it does not matter).
> 
> Does anybody know how to do that?
> Cheers, Dax.

How about:

  h[!duplicated(t(apply(h,1,sort))),]
       [,1] [,2]
  [1,]    4    4
  [2,]    1    4

Better than

  unique(t(apply(h,1,sort)))
       [,1] [,2]
  [1,]    4    4
  [2,]    1    4

in general (though it comes to the same for your example)
since it preserves the order of elements in each row.

Cheers,
Ted.


--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861  [NB: New number!]
Date: 29-Jan-05                                       Time: 14:26:31
------------------------------ XFMail ------------------------------




More information about the R-help mailing list