[R] select unique by multiple values

Berend Hasselman bhh at xs4all.nl
Wed Oct 9 20:49:29 CEST 2013


On 09-10-2013, at 13:50, Ronald Peterson <ron at hub.yellowbank.com> wrote:

> Hi,
> 
> New to R here.  Lots of fun.  Still rather green though.
> 
> I'd like to select unique items from a list that looks like this (for
> example):
> 
>> xyz
> $x
> [1] 8 6 9 0 0 3 9 7 1 9
> $y
> [1] 1 2 9 5 1 2 0 9 2 9
> $z
> [1] 5 6 9 0 5 1 1 7 3 4
> 
> I'd like to select unique (x,y), while preserving association with z
> values.  When there are duplicate (x,y) pairs, it doesn't really matter
> which (x,y,z) triplet gets preserved - selecting the first would be fine,
> but any other way to do it would be fine also.  It /would/ be handy to also
> get a list of the rejected triplets, if that's possible.  Ideas?

You could try this

A <- cbind(xyz[[1]],xyz[[2]])
A

indx <- which(duplicated(A))
indx

lapply(xyz,function(u) u[-indx])
lapply(xyz,function(u) u[indx])


Berend



More information about the R-help mailing list