R doesn't know whether the missing (NA) value is 6 or not, so by default it returns it so the user can make up her own mind.
If you're using square brackets for subsetting, you need to explicitly handle NA cases. If using subset(), the default behavior is to remove them. ?"[" explains this. Sarah On Wed, Sep 19, 2012 at 2:03 PM, Sam Steingold <s...@gnu.org> wrote: > Thanks, Sarah, your answer is, indeed, revealing: > --8<---------------cut here---------------start------------->8--- >> z <- data.frame(a=c(1,2,3),b=c(5,6,NA)) >> z > a b > 1 1 5 > 2 2 6 > 3 3 NA >> z[z$b==6,] > a b > 2 2 6 > NA NA NA > --8<---------------cut here---------------end--------------->8--- > why do I get an extra "all NA" row? > > >> * Sarah Goslee <fnenu.tbf...@tznvy.pbz> [2012-09-19 13:54:56 -0400]: >> >> Well, you have no reproducible example, but I suspect either of these >> will fix it: >> >> locals <- z[z$country == mycountry & !is.na(z$country),] >> >> locals <- subset(z, country == mycountry) >> >> Sarah >> >> On Wed, Sep 19, 2012 at 1:50 PM, Sam Steingold <s...@gnu.org> wrote: >>> I see this: >>> --8<---------------cut here---------------start------------->8--- >>>> length(which(is.na(z$language))) >>> [1] 0 >>>> locals <- z[z$country == mycountry,] >>>> length(which(is.na(locals$language))) >>> [1] 229 >>> --8<---------------cut here---------------end--------------->8--- >>> where are those locals without the language coming from?! >>> > -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ 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.