[R] Is this an artifact of using "which"?

Tania Oh tania.oh at bnc.ox.ac.uk
Mon Apr 14 13:55:46 CEST 2008


Dear Uwe,
thank you very much for this.
After reading your solution below, I searched the help pages for  
data.frame, which, factor but I didn't see the option for "drop" in  
them.

I googled and found "drop" associated with the function subset. is  
this the help page you were alluding to?


Sorry if I've missed something.
thanks so much in advance again.
tania

On 14 Apr 2008, at 12:39, Uwe Ligges wrote:

>
>
> Tania Oh wrote:
>> Dear all,
>> I used "which" to obtain a subset of values from my data.frame.   
>> however, I find that there is a "trace" of the values I  have  
>> removed.  Any suggestions would be greatly appreciate.
>> Below is my data:
>> d <- data.frame( val   = 1:10,
>>                 group = sample(LETTERS[1:5], 10, repl=TRUE) )
>> >d
>>    val group
>> 1    1     B
>> 2    2     E
>> 3    3     B
>> 4    4     C
>> 5    5     A
>> 6    6     B
>> 7    7     A
>> 8    8     E
>> 9    9     E
>> 10  10     A
>> ## selecting everything that is not group "A"
>>  d<-d[which(d$group !="A"),]
>> > d
>>   val group
>> 1   1     B
>> 2   2     E
>> 3   3     B
>> 4   4     C
>> 6   6     B
>> 8   8     E
>> 9   9     E
>> > levels(d$group)
>> [1] "A" "B" "C" "E"
>> ## why is group A still reflected here?
>
>
> Because you have removed elements from a factor objects that has  
> particular levels. You remove elements (=observations), but the  
> factor still knows that all levels are possible (stired in  
> attributes of the object).
>
> If you want to remove all levels without corresponding observations,  
> use explicit drop=TRUE as the help page suggests, e.g.:
>
>
> d <- d[d$group != "A", ]
> d$group <- d$group[ , drop = TRUE]
>
> Uwe Ligges
>
>
>
>> Many thanks in advance,
>> tania
>> D.phil student
>> Department of Physiology, Anatomy and Genetics
>> Oxford University
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list