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

Uwe Ligges ligges at statistik.tu-dortmund.de
Mon Apr 14 17:48:01 CEST 2008



Tania Oh wrote:
> 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.


In fact, ?factor links to ?[.factor whcih explains it.

Uwe


> 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