On Sep 1, 2011, at 2:59 PM, Dan Abner wrote:

Hello everyone,

I have the following factor:

levels(pp_income)
[1] ""       "1"      "2"      "3"      "4"      "5"      "6"      "7"
[9] "8"      "9"      "Renter"

I want to subset so that only values 1:9 are included. I have the following:

income<-pp_income[pp_income %in% c(1:9)]

levels(income)
[1] ""       "1"      "2"      "3"      "4"      "5"      "6"      "7"
[9] "8"      "9"      "Renter"

Why is this not working

Actually it could be that it did succeed but you just have levels attributes that are unpopulated in your result. Try:

table{income)

If that looks correct, then do this:

income <- factor(income)  # will drop unused levels


and can someone please suggest a solution?

If on the other hand you got the wrong values then there was an undesired coercion of either 'factor' class to 'numeric' or of 'numeric' to 'character'. I am fairly sure this will remove any ambiguity:

income<-pp_income[as.character(pp_income)
                        %in% as.character(1:9)]

(You would still get the puzzling extra levels if you looked with levels(income).)


Thank you!

Dan

        [[alternative HTML version deleted]]

______________________________________________
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.

David Winsemius, MD
West Hartford, CT

______________________________________________
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