Removing NAs from ggplot

Hello , please I am trying to remove NA from my ggplot, so that I have three plots instead of four. Also is there a way to remove Unknown from gender, so that my fill=gender will take only Male and Female? Thanks in anticipation

#install packages
pacman:: p_load(rio,janitor, here, tidyverse, datapasta, reprex)

# load data ---------------------------------------------------------------
line_clean<-data.frame(
  stringsAsFactors = FALSE,
  report_date = c("2020-09-17","2021-05-18",
                  "2021-01-06","2021-05-30","2020-04-08","2021-03-26",
                  "2021-03-22","2020-12-07","2020-05-22","2020-06-17",
                  "2021-01-22","2020-10-12","2020-11-08","2021-01-26",
                  "2020-08-18","2020-08-01","2021-01-07","2021-02-08",
                  "2020-06-10","2020-12-06","2021-03-27","2020-12-24",
                  "2021-05-06","2021-03-17","2021-02-07","2021-04-01",
                  "2021-01-05","2020-07-18","2020-06-20","2020-04-02",
                  "2020-08-03","2021-01-31","2020-08-16","2020-08-10",
                  "2020-12-04","2020-08-09","2020-12-18","2020-04-29","2020-11-11",
                  "2020-08-21"),
  gender = c("Male","Female","Female",
             "Male","Male","Female","Female","Female","Female",
             "Male","Female","Female","Female","Male","Male","Male",
             "Female","Female","Female","Male","Female","Female",
             "Unknown","Male","Male","Male","Female","Female",
             "Male","Female","Female","Male","Female","Male",
             "Female","Male","Male","Female","Male","Male"),
  case_race = c("BLACK","OTHER","BLACK",
                "BLACK","WHITE","WHITE","BLACK","WHITE",NA,NA,"WHITE",
                "WHITE","BLACK","WHITE","OTHER","BLACK","WHITE",
                "BLACK","BLACK","WHITE","BLACK","WHITE","OTHER",
                "WHITE","WHITE","BLACK",NA,"BLACK","WHITE","BLACK",
                "WHITE","WHITE","WHITE","WHITE",NA,"WHITE","WHITE",
                "BLACK","BLACK","BLACK")
)

clean<-line_clean %>% 
  clean_names() %>% 
  mutate(report_date=ymd(report_date))

clean %>% 
  ggplot(mapping= aes(x=report_date, fill=gender) )+
  geom_histogram()+
  scale_x_date(date_breaks = "3 months", labels = scales::label_date_short())+
  facet_wrap(~case_race)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

[image]

Created on 2024-03-07 with reprex v2.0.2

Session info


1 Like

Hello,

I would filter the data prior to plotting it to achieve this, please see below:

# loading packages
library(tidyverse)
library(janitor)
#> 
#> Attaching package: 'janitor'
#> The following objects are masked from 'package:stats':
#> 
#>     chisq.test, fisher.test

# creating fake data
# load data ---------------------------------------------------------------
line_clean <- data.frame(
  stringsAsFactors = FALSE,
  report_date = c(
    "2020-09-17", "2021-05-18",
    "2021-01-06", "2021-05-30", "2020-04-08", "2021-03-26",
    "2021-03-22", "2020-12-07", "2020-05-22", "2020-06-17",
    "2021-01-22", "2020-10-12", "2020-11-08", "2021-01-26",
    "2020-08-18", "2020-08-01", "2021-01-07", "2021-02-08",
    "2020-06-10", "2020-12-06", "2021-03-27", "2020-12-24",
    "2021-05-06", "2021-03-17", "2021-02-07", "2021-04-01",
    "2021-01-05", "2020-07-18", "2020-06-20", "2020-04-02",
    "2020-08-03", "2021-01-31", "2020-08-16", "2020-08-10",
    "2020-12-04", "2020-08-09", "2020-12-18", "2020-04-29", "2020-11-11",
    "2020-08-21"
  ),
  gender = c(
    "Male", "Female", "Female",
    "Male", "Male", "Female", "Female", "Female", "Female",
    "Male", "Female", "Female", "Female", "Male", "Male", "Male",
    "Female", "Female", "Female", "Male", "Female", "Female",
    "Unknown", "Male", "Male", "Male", "Female", "Female",
    "Male", "Female", "Female", "Male", "Female", "Male",
    "Female", "Male", "Male", "Female", "Male", "Male"
  ),
  case_race = c(
    "BLACK", "OTHER", "BLACK",
    "BLACK", "WHITE", "WHITE", "BLACK", "WHITE", NA, NA, "WHITE",
    "WHITE", "BLACK", "WHITE", "OTHER", "BLACK", "WHITE",
    "BLACK", "BLACK", "WHITE", "BLACK", "WHITE", "OTHER",
    "WHITE", "WHITE", "BLACK", NA, "BLACK", "WHITE", "BLACK",
    "WHITE", "WHITE", "WHITE", "WHITE", NA, "WHITE", "WHITE",
    "BLACK", "BLACK", "BLACK"
  )
)

# cleaning data
clean_data <- line_clean |>
    clean_names() |>
    mutate(report_date = ymd(report_date))

# plotting data
clean_data |>
    dplyr::filter(gender != "Unknown", !is.na(case_race)) |>
    ggplot(mapping = aes(x = report_date, fill = gender)) +
    geom_histogram() +
    scale_x_date(date_breaks = "3 months", labels = scales::label_date_short())+
    facet_wrap(~case_race)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Created on 2024-03-07 with reprex v2.1.0

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.3.1 (2023-06-16)
#>  os       macOS Ventura 13.6.3
#>  system   x86_64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       America/Toronto
#>  date     2024-03-07
#>  pandoc   3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date (UTC) lib source
#>  cli           3.6.2   2023-12-11 [1] CRAN (R 4.3.0)
#>  colorspace    2.1-0   2023-01-23 [1] CRAN (R 4.3.0)
#>  curl          5.2.0   2023-12-08 [1] CRAN (R 4.3.0)
#>  digest        0.6.34  2024-01-11 [1] RSPM (R 4.3.0)
#>  dplyr       * 1.1.4   2023-11-17 [1] CRAN (R 4.3.0)
#>  evaluate      0.23    2023-11-01 [1] CRAN (R 4.3.0)
#>  fansi         1.0.6   2023-12-08 [1] CRAN (R 4.3.0)
#>  farver        2.1.1   2022-07-06 [1] CRAN (R 4.3.0)
#>  fastmap       1.1.1   2023-02-24 [1] CRAN (R 4.3.0)
#>  forcats     * 1.0.0   2023-01-29 [1] CRAN (R 4.3.0)
#>  fs            1.6.3   2023-07-20 [1] CRAN (R 4.3.0)
#>  generics      0.1.3   2022-07-05 [1] CRAN (R 4.3.0)
#>  ggplot2     * 3.5.0   2024-02-23 [1] RSPM (R 4.3.0)
#>  glue          1.7.0   2024-01-09 [1] RSPM (R 4.3.0)
#>  gtable        0.3.4   2023-08-21 [1] CRAN (R 4.3.0)
#>  highr         0.10    2022-12-22 [1] CRAN (R 4.3.0)
#>  hms           1.1.3   2023-03-21 [1] CRAN (R 4.3.0)
#>  htmltools     0.5.7   2023-11-03 [1] CRAN (R 4.3.0)
#>  janitor     * 2.2.0   2023-02-02 [1] CRAN (R 4.3.0)
#>  knitr         1.45    2023-10-30 [1] CRAN (R 4.3.0)
#>  labeling      0.4.3   2023-08-29 [1] CRAN (R 4.3.0)
#>  lifecycle     1.0.4   2023-11-07 [1] CRAN (R 4.3.0)
#>  lubridate   * 1.9.3   2023-09-27 [1] CRAN (R 4.3.0)
#>  magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.3.0)
#>  munsell       0.5.0   2018-06-12 [1] CRAN (R 4.3.0)
#>  pillar        1.9.0   2023-03-22 [1] CRAN (R 4.3.0)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.3.0)
#>  purrr       * 1.0.2   2023-08-10 [1] CRAN (R 4.3.0)
#>  R.cache       0.16.0  2022-07-21 [1] CRAN (R 4.3.0)
#>  R.methodsS3   1.8.2   2022-06-13 [1] CRAN (R 4.3.0)
#>  R.oo          1.26.0  2024-01-24 [1] RSPM (R 4.3.0)
#>  R.utils       2.12.3  2023-11-18 [1] CRAN (R 4.3.0)
#>  R6            2.5.1   2021-08-19 [1] CRAN (R 4.3.0)
#>  readr       * 2.1.5   2024-01-10 [1] RSPM (R 4.3.0)
#>  reprex        2.1.0   2024-01-11 [1] RSPM (R 4.3.0)
#>  rlang         1.1.3   2024-01-10 [1] RSPM (R 4.3.0)
#>  rmarkdown     2.25    2023-09-18 [1] CRAN (R 4.3.0)
#>  rstudioapi    0.15.0  2023-07-07 [1] CRAN (R 4.3.0)
#>  scales        1.3.0   2023-11-28 [1] CRAN (R 4.3.0)
#>  sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.3.0)
#>  snakecase     0.11.1  2023-08-27 [1] CRAN (R 4.3.0)
#>  stringi       1.8.3   2023-12-11 [1] CRAN (R 4.3.0)
#>  stringr     * 1.5.1   2023-11-14 [1] CRAN (R 4.3.0)
#>  styler        1.10.2  2023-08-29 [1] CRAN (R 4.3.0)
#>  tibble      * 3.2.1   2023-03-20 [1] CRAN (R 4.3.0)
#>  tidyr       * 1.3.1   2024-01-24 [1] RSPM (R 4.3.0)
#>  tidyselect    1.2.0   2022-10-10 [1] CRAN (R 4.3.0)
#>  tidyverse   * 2.0.0   2023-02-22 [1] CRAN (R 4.3.0)
#>  timechange    0.3.0   2024-01-18 [1] RSPM (R 4.3.0)
#>  tzdb          0.4.0   2023-05-12 [1] CRAN (R 4.3.0)
#>  utf8          1.2.4   2023-10-22 [1] CRAN (R 4.3.0)
#>  vctrs         0.6.5   2023-12-01 [1] CRAN (R 4.3.0)
#>  withr         3.0.0   2024-01-16 [1] RSPM (R 4.3.0)
#>  xfun          0.42    2024-02-08 [1] RSPM (R 4.3.0)
#>  xml2          1.3.6   2023-12-04 [1] CRAN (R 4.3.0)
#>  yaml          2.3.8   2023-12-11 [1] CRAN (R 4.3.0)
#> 
#>  [1] /Users/timothychisamore/Library/R/x86_64/4.3/library
#>  [2] /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

All the best,

Tim