A slight variation on your solution but hopefully more readable: names( which( table(a) == 1 ) )
Regards, Adai On Wed, 2006-02-22 at 09:11 +0000, Robin Hankin wrote: > Hi. > > I have a factor and I want to extract just those elements that appear > exactly once. > How to do this? > > Toy example follows. > > > a <- as.factor(c(rep("oak",5) ,rep("ash",1),rep("elm",1),rep > ("beech",4))) > > a > [1] oak oak oak oak oak ash elm beech beech beech beech > Levels: ash beech elm oak > > table(a) > a > ash beech elm oak > 1 4 1 5 > > > > So I would want "ash" and "elm", because there is only one ash and > only one elm in my wood. > > My Best Effort: > > > > names(table(a)[table(a)==1]) > [1] "ash" "elm" > > > > This doesn't seem particularly elegant to me; there must be a better > way! > > anyone? > > > > > -- > Robin Hankin > Uncertainty Analyst > National Oceanography Centre, Southampton > European Way, Southampton SO14 3ZH, UK > tel 023-8059-7743 > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html