[R] select unique by multiple values
arun
smartpink111 at yahoo.com
Wed Oct 9 15:56:07 CEST 2013
Hi,
Not sure about your expected output.
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
More information about the R-help
mailing list