# [R] select unique by multiple values

arun smartpink111 at yahoo.com
Wed Oct 9 15:56:07 CEST 2013

```
Hi,

xyz<- list(x=c(8,6,9,0,0,3,9,7,1,9),y=c(1,2,9,5,1,2,0,9,2,9),z=c(5,6,9,0,5,1,1,7,3,4))
indx<-sort(unique(unlist(lapply(xyz[1:2],function(u) which(!duplicated(u))),use.names=FALSE)))
xyz[1:2]<-lapply(xyz[1:2],function(u) u[!duplicated(u)])
xyz[3]\$z<- xyz[3]\$z[indx]
xyz
#\$x
#[1] 8 6 9 0 3 7 1
#
#\$y
#[1] 1 2 9 5 0
#
#\$z
#[1] 5 6 9 0 1 1 7 3

A.K.

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?

Thanks!

R

```