Applied Epi Community

Combined variable count - missing data?

Hi all,

I’m a bit stumped with my code. I’m working with a hospital data set of complicated UTIs. I want to combine the various causes into a single variable, which I did using case_when(). The problem I have is that the count doesn’t add up. For some variables (ie Foley cath), the count is correct in the combined variable. But for others (ie Nephrolithiasis), the count is off by one.
What am I missing?

# Load packages
if(!require("pacman")){
  install.packages('pacman')
}
#> Loading required package: pacman
#> Warning: package 'pacman' was built under R version 4.1.3

pacman::p_load(tidyverse,
               janitor)

# Recreate dataset
cuti_dat <- tibble::tribble(
  ~cuti_details_1, ~cuti_details_2, ~cuti_details_3, ~cuti_details_4, ~cuti_details_5, ~cuti_details_6, ~cuti_details_7, ~cuti_details_8, ~cuti_details_9,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               1L,              1L,              1L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              1L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              1L,              0L,              0L,              0L,              0L,
               1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              1L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              1L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              1L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              1L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              1L,              0L,              1L,              0L,              0L,              0L,
               1L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,
               0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L,              0L
  )

# Combine all variables into one: cuti_cause 
cuti_dat <- cuti_dat %>% 
  mutate(cuti_cause = case_when(
    cuti_details_5 == 1 ~ "Prostatic hypertrophy",
    cuti_details_2 == 1 ~ "Nephrostomy tube",
    cuti_details_3 == 1 ~ "Urethral stent",
    cuti_details_8 == 1 ~ "Intestinal conduit",
    cuti_details_9 == 1 ~ "Suprapubic catheter",
    cuti_details_4 == 1 ~ "Intermittent urinary cath",
    cuti_details_7 == 1 ~ "Foley cath",
    cuti_details_6 == 1 ~ "Prostate cancer",
    cuti_details_1 == 1 ~ "Nephrolithiasis"
  ))

# Check combined variable
cuti_dat %>% tabyl(cuti_cause)
#>                 cuti_cause  n percent valid_percent
#>                 Foley cath  3    0.03    0.20000000
#>  Intermittent urinary cath  1    0.01    0.06666667
#>         Intestinal conduit  1    0.01    0.06666667
#>            Nephrolithiasis  6    0.06    0.40000000
#>           Nephrostomy tube  2    0.02    0.13333333
#>            Prostate cancer  1    0.01    0.06666667
#>      Prostatic hypertrophy  1    0.01    0.06666667
#>                       <NA> 85    0.85            NA

# Foley cath count
cuti_dat %>% tabyl(cuti_details_7)
#>  cuti_details_7  n percent
#>               0 97    0.97
#>               1  3    0.03

# Nephrolithiasis count
cuti_dat %>% tabyl(cuti_details_1)
#>  cuti_details_1  n percent
#>               0 93    0.93
#>               1  7    0.07

Created on 2022-04-28 by the reprex package (v2.0.1)

Session info
sessioninfo::session_info()
#> - Session info  --------------------------------------------------------------
#>  hash: person running, flag: Northern Mariana Islands, paintbrush
#> 
#>  setting  value
#>  version  R version 4.1.2 (2021-11-01)
#>  os       Windows 10 x64 (build 19042)
#>  system   x86_64, mingw32
#>  ui       RTerm
#>  language (EN)
#>  collate  English_United States.1252
#>  ctype    English_United States.1252
#>  tz       America/New_York
#>  date     2022-04-28
#>  pandoc   2.14.0.3 @ C:/Program Files/RStudio/bin/pandoc/ (via rmarkdown)
#> 
#> - Packages -------------------------------------------------------------------
#>  package     * version date (UTC) lib source
#>  assertthat    0.2.1   2019-03-21 [2] CRAN (R 4.1.1)
#>  backports     1.3.0   2021-10-27 [2] CRAN (R 4.1.1)
#>  broom         0.7.12  2022-01-28 [1] CRAN (R 4.1.2)
#>  cellranger    1.1.0   2016-07-27 [2] CRAN (R 4.1.1)
#>  cli           3.2.0   2022-02-14 [1] CRAN (R 4.1.2)
#>  colorspace    2.0-2   2021-06-24 [2] CRAN (R 4.1.1)
#>  crayon        1.4.2   2021-10-29 [2] CRAN (R 4.1.1)
#>  DBI           1.1.1   2021-01-15 [2] CRAN (R 4.1.1)
#>  dbplyr        2.1.1   2021-04-06 [2] CRAN (R 4.1.1)
#>  digest        0.6.28  2021-09-23 [2] CRAN (R 4.1.1)
#>  dplyr       * 1.0.8   2022-02-08 [1] CRAN (R 4.1.2)
#>  ellipsis      0.3.2   2021-04-29 [2] CRAN (R 4.1.1)
#>  evaluate      0.14    2019-05-28 [2] CRAN (R 4.1.1)
#>  fansi         0.5.0   2021-05-25 [2] CRAN (R 4.1.1)
#>  fastmap       1.1.0   2021-01-25 [2] CRAN (R 4.1.1)
#>  forcats     * 0.5.1   2021-01-27 [2] CRAN (R 4.1.1)
#>  fs            1.5.2   2021-12-08 [1] CRAN (R 4.1.2)
#>  generics      0.1.1   2021-10-25 [2] CRAN (R 4.1.1)
#>  ggplot2     * 3.3.5   2021-06-25 [2] CRAN (R 4.1.1)
#>  glue          1.6.2   2022-02-24 [1] CRAN (R 4.1.2)
#>  gtable        0.3.0   2019-03-25 [2] CRAN (R 4.1.1)
#>  haven         2.4.3   2021-08-04 [2] CRAN (R 4.1.1)
#>  highr         0.9     2021-04-16 [2] CRAN (R 4.1.1)
#>  hms           1.1.1   2021-09-26 [2] CRAN (R 4.1.1)
#>  htmltools     0.5.2   2021-08-25 [2] CRAN (R 4.1.1)
#>  httr          1.4.2   2020-07-20 [2] CRAN (R 4.1.1)
#>  janitor     * 2.1.0   2021-01-05 [1] CRAN (R 4.1.3)
#>  jsonlite      1.7.2   2020-12-09 [2] CRAN (R 4.1.1)
#>  knitr         1.37    2021-12-16 [1] CRAN (R 4.1.2)
#>  lifecycle     1.0.1   2021-09-24 [2] CRAN (R 4.1.1)
#>  lubridate     1.8.0   2021-10-07 [2] CRAN (R 4.1.1)
#>  magrittr      2.0.2   2022-01-26 [1] CRAN (R 4.1.2)
#>  modelr        0.1.8   2020-05-19 [2] CRAN (R 4.1.1)
#>  munsell       0.5.0   2018-06-12 [2] CRAN (R 4.1.1)
#>  pacman      * 0.5.1   2019-03-11 [1] CRAN (R 4.1.3)
#>  pillar        1.6.4   2021-10-18 [2] CRAN (R 4.1.1)
#>  pkgconfig     2.0.3   2019-09-22 [2] CRAN (R 4.1.1)
#>  purrr       * 0.3.4   2020-04-17 [2] CRAN (R 4.1.1)
#>  R6            2.5.1   2021-08-19 [2] CRAN (R 4.1.1)
#>  Rcpp          1.0.7   2021-07-07 [2] CRAN (R 4.1.1)
#>  readr       * 2.1.0   2021-11-11 [2] CRAN (R 4.1.2)
#>  readxl        1.3.1   2019-03-13 [2] CRAN (R 4.1.1)
#>  reprex        2.0.1   2021-08-05 [2] CRAN (R 4.1.1)
#>  rlang         1.0.1   2022-02-03 [1] CRAN (R 4.1.2)
#>  rmarkdown     2.11    2021-09-14 [2] CRAN (R 4.1.1)
#>  rstudioapi    0.13    2020-11-12 [2] CRAN (R 4.1.1)
#>  rvest         1.0.2   2021-10-16 [2] CRAN (R 4.1.1)
#>  scales        1.1.1   2020-05-11 [2] CRAN (R 4.1.1)
#>  sessioninfo   1.2.1   2021-11-02 [2] CRAN (R 4.1.2)
#>  snakecase     0.11.0  2019-05-25 [2] CRAN (R 4.1.1)
#>  stringi       1.7.5   2021-10-04 [2] CRAN (R 4.1.1)
#>  stringr     * 1.4.0   2019-02-10 [2] CRAN (R 4.1.1)
#>  tibble      * 3.1.6   2021-11-07 [2] CRAN (R 4.1.2)
#>  tidyr       * 1.1.4   2021-09-27 [2] CRAN (R 4.1.1)
#>  tidyselect    1.1.1   2021-04-30 [2] CRAN (R 4.1.1)
#>  tidyverse   * 1.3.1   2021-04-15 [1] CRAN (R 4.1.3)
#>  tzdb          0.2.0   2021-10-27 [2] CRAN (R 4.1.1)
#>  utf8          1.2.2   2021-07-24 [2] CRAN (R 4.1.1)
#>  vctrs         0.3.8   2021-04-29 [2] CRAN (R 4.1.1)
#>  withr         2.4.2   2021-04-18 [2] CRAN (R 4.1.1)
#>  xfun          0.28    2021-11-04 [2] CRAN (R 4.1.2)
#>  xml2          1.3.2   2020-04-23 [2] CRAN (R 4.1.1)
#>  yaml          2.2.1   2020-02-01 [2] CRAN (R 4.1.1)
#> 
#>  [1] Z:/Tim's Folder/asic/library
#>  [2] C:/Program Files/R/R-4.1.2/library
#> 
#> ------------------------------------------------------------------------------

Hello,

case_when() can be difficult to de-bug sometimes. It is likely that one of your cuti_details_1 observations is meeting the criteria of a prior case_when() statement and being assigned to a different category than you expect.

For each row in the data frame, case_when() test the logical statements you provide in the order written (top to bottom).

To thoroughly vet the assignments, you could try running and re-running your case_when() building it piece-by-piece, and watch the assignments occur step-by-step.

1 Like