Re: [R] elements that appear only once

From: Robin Hankin <r.hankin_at_noc.soton.ac.uk>
Date: Wed 22 Feb 2006 - 22:14:44 EST

Hi Dmitris, and list

On 22 Feb 2006, at 09:24, Dimitris Rizopoulos wrote:

> another approach is:
>
> names(which(table(a) == 1))
>
> but I don't know if you find this more elegant :)
>

well, thank you for this (which() is good here!) but this is still "inelegant" IMHO
because it uses the names() of a table.

If I had

 > a <- as.factor(c(1,1,1,2,3,4,4,4,4,5))  > names(which(table(a)==1))
[1] "2" "3" "5"
 >

this gives a character vector.

I could coerce using as.integer() here, but this seems so....inelegant.

best wishes

Robin

>
> Best,
> Dimitris
>

>
>
>> 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
Received on Wed Feb 22 22:27:11 2006

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:42:39 EST