Hello! I am trying to understand how ggplot2's geom_bar treats NAs. The help file says: library(ggplot2) ?geom_bar na.rm: If FALSE, the default, missing values are removed with a warning. If TRUE, missing values are silently removed. I am trying it out: md <- data.frame(a = c(letters[1:5], letters[1:4], letters[1:3], rep(NA, 3))) str(md); levels(md$a) ggplot(data = md, mapping = aes(x = a)) + geom_bar(na.rm = F) It runs without warnings and generates counts for each factor level AS WELL AS the NAs. Makes sense. Now, I don't want the NAs to be counted. So, I run: ggplot(data = md, mapping = aes(x = a)) + geom_bar(na.rm = T) But I still have NAs in the picture. Why? What am I missing? Thank you! -- Dimitri Liakhovitski [[alternative HTML version deleted]]
To clarify: my question is not about "who could I exclude NAs from being counted" - I know how to do that. My question is: Why na.rm = T is not working for geom_bar in this case? On Thu, Jul 27, 2017 at 8:24 AM, Dimitri Liakhovitski < dimitri.liakhovitski at gmail.com> wrote:> Hello! > > I am trying to understand how ggplot2's geom_bar treats NAs. > The help file says: > > library(ggplot2) > ?geom_bar > na.rm: If FALSE, the default, missing values are removed with a warning. > If TRUE, missing values are silently removed. > > I am trying it out: > md <- data.frame(a = c(letters[1:5], letters[1:4], letters[1:3], rep(NA, > 3))) > str(md); levels(md$a) > > ggplot(data = md, mapping = aes(x = a)) + > geom_bar(na.rm = F) > It runs without warnings and generates counts for each factor level AS > WELL AS the NAs. Makes sense. > > Now, I don't want the NAs to be counted. So, I run: > ggplot(data = md, mapping = aes(x = a)) + > geom_bar(na.rm = T) > > But I still have NAs in the picture. Why? > What am I missing? > > Thank you! > -- > Dimitri Liakhovitski >-- Dimitri Liakhovitski [[alternative HTML version deleted]]
Just a thought: Did you try na.rm = TRUE in case you have an object named "T" in scope? -- Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Jul 27, 2017 at 7:49 AM, Dimitri Liakhovitski <dimitri.liakhovitski at gmail.com> wrote:> To clarify: my question is not about "who could I exclude NAs from being > counted" - I know how to do that. > My question is: Why na.rm = T is not working for geom_bar in this case? > > On Thu, Jul 27, 2017 at 8:24 AM, Dimitri Liakhovitski < > dimitri.liakhovitski at gmail.com> wrote: > >> Hello! >> >> I am trying to understand how ggplot2's geom_bar treats NAs. >> The help file says: >> >> library(ggplot2) >> ?geom_bar >> na.rm: If FALSE, the default, missing values are removed with a warning. >> If TRUE, missing values are silently removed. >> >> I am trying it out: >> md <- data.frame(a = c(letters[1:5], letters[1:4], letters[1:3], rep(NA, >> 3))) >> str(md); levels(md$a) >> >> ggplot(data = md, mapping = aes(x = a)) + >> geom_bar(na.rm = F) >> It runs without warnings and generates counts for each factor level AS >> WELL AS the NAs. Makes sense. >> >> Now, I don't want the NAs to be counted. So, I run: >> ggplot(data = md, mapping = aes(x = a)) + >> geom_bar(na.rm = T) >> >> But I still have NAs in the picture. Why? >> What am I missing? >> >> Thank you! >> -- >> Dimitri Liakhovitski >> > > > > -- > Dimitri Liakhovitski > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
I suspect this is by design. Questions about "why" should probably cc the contributed package maintainer(s). -- Sent from my phone. Please excuse my brevity. On July 27, 2017 7:49:47 AM PDT, Dimitri Liakhovitski <dimitri.liakhovitski at gmail.com> wrote:>To clarify: my question is not about "who could I exclude NAs from >being >counted" - I know how to do that. >My question is: Why na.rm = T is not working for geom_bar in this case? > >On Thu, Jul 27, 2017 at 8:24 AM, Dimitri Liakhovitski < >dimitri.liakhovitski at gmail.com> wrote: > >> Hello! >> >> I am trying to understand how ggplot2's geom_bar treats NAs. >> The help file says: >> >> library(ggplot2) >> ?geom_bar >> na.rm: If FALSE, the default, missing values are removed with a >warning. >> If TRUE, missing values are silently removed. >> >> I am trying it out: >> md <- data.frame(a = c(letters[1:5], letters[1:4], letters[1:3], >rep(NA, >> 3))) >> str(md); levels(md$a) >> >> ggplot(data = md, mapping = aes(x = a)) + >> geom_bar(na.rm = F) >> It runs without warnings and generates counts for each factor level >AS >> WELL AS the NAs. Makes sense. >> >> Now, I don't want the NAs to be counted. So, I run: >> ggplot(data = md, mapping = aes(x = a)) + >> geom_bar(na.rm = T) >> >> But I still have NAs in the picture. Why? >> What am I missing? >> >> Thank you! >> -- >> Dimitri Liakhovitski >>