My explanation for No2: When coercing a character vector to factor, the current levels are stored. By choosing a subvector of the factor you don't change the levels of the factor. So levels(a[1:3]) is still [1] "a" "b" "c" in the last line ...
If you want to reduce levels you need to tell R. > levels(a[1:3, drop=TRUE]) [1] "a" "b" ________________ Moritz Grenke http://www.360mix.de -----Ursprüngliche Nachricht----- Von: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] Im Auftrag von analys...@hotmail.com Gesendet: Samstag, 22. Januar 2011 15:17 An: r-help@r-project.org Betreff: [R] two apparent anomalies (1) > a = c("a","b") > mode(a) [1] "character" > b = c(1,2) > mode(b) [1] "numeric" > c = data.frame(a,b) > mode(c$a) [1] "numeric" (2) > a = c("a","a","b","b","c") > levels(as.factor(a)) [1] "a" "b" "c" > levels(as.factor(a[1:3])) [1] "a" "b" > a = as.factor(a) > levels(a) [1] "a" "b" "c" > levels(a[1:3]) [1] "a" "b" "c" Any explanation would be helpful. Thanks. ______________________________________________ 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. ______________________________________________ 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.