On Jul 24, 2013, at 6:25 AM, Borja Rivier wrote:

> Hi all,
> 
> I am having a bit of trouble using the levels() function.
> I have a factor with many elements, and when I use the function levels() to
> extract the list of unique elements, some of the elements returned are not
> actually in the factor.
> 
> For example I would have this:
> 
>> vector <- dataset$Benchmark
>> class(vector)
> [1] "factor"
>> length(vector)
> [1] 35615
>> vector2 <- levels(vector)
>> length(which(!(vector2 %in% vector)))
> [1] 235
> 
> Does anyone know how this is possible?
> 

When you take a subset of a factor vector, the levels are not reduced to the 
unique values in the new vector. There is droplevels function that would need 
to be applied if you already have such a vector, and there is a drop argument 
that you need to set to TRUE in the `[.factors` call if you want to "attack the 
problem at the source".

?`[.factor
?droplevels

-- 

David Winsemius
Alameda, CA, USA

______________________________________________
R-help@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.

Reply via email to