Generate counts per group in table

Describe your issue

Hi,

I am working on a Rmd document. In this Rmd I have data_date as a param so people can select from what date they want to generate data for this report.

As part of the report, I want to create a table with total counts of cases per city. I grouped my dataframe by city and tried using summarise() and count() to create a column with counts and then a column with total count of cases in the last 14 days (using the params) but I am getting an error.

Provide an example of your R code

  • Here is my current script with a demo data,
pacman::p_load(
  rio,          # for importing data
  janitor,      # for data cleaning  
  tidyverse,
  datapasta,
  reprex
)

# create dataframe 
line_list <- data.frame(
  stringsAsFactors = FALSE,
  pid = c("person1",
             "person2",
             "person3",
             "person4",
             "person5"
),
  city = c("Atlanta", "Union City", "Atlanta", "Atlanta", "Atlanta"),
  report_dt = c("2020-09-09","2020-07-25",
                "2020-07-02","2020-11-05","2020-09-26"),
  confirmed_case = c("Yes", "Yes", "Yes", "Yes", "Yes")
)


# Try to create a table with total counts + city & cases in the last 14 days 
incident_city <- line_list%>% 
  group_by(city) %>%
  summarise(
    total_cases = count(city),
    recent_14d = sum(report_dt >= params$data_date - 14)
  )
#> Error in summarise(., total_cases = count(city), recent_14d = sum(report_dt >= : could not find function "summarise"


# check column class
class(line_list$city)
#> [1] "character"

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

Thank you in advance!

2 Likes

Hello,

The count() function should not be used within the summarize() function, rather, you will have to use the n() function within summarize() to achieve this. Additionally, you will need to convert your dates to have a date type in order to perform logical comparisons, see below:

# loading packages
library(tidyverse)

# creating fake data
line_list <- data.frame(
    stringsAsFactors = FALSE,
    pid = c("person1",
                    "person2",
                    "person3",
                    "person4",
                    "person5"),
    city = c("Atlanta", "Union City", "Atlanta", "Atlanta", "Atlanta"),
    report_dt = c(
        "2020-09-09",
        "2020-07-25",
        "2020-07-02",
        "2020-11-05",
        "2020-09-26"
    ),
    confirmed_case = c("Yes", "Yes", "Yes", "Yes", "Yes")
)

# Try to create a table with total counts + city & cases in the last 14 days
incident_city <- line_list |>
    mutate(report_dt = ymd(report_dt)) |>
    group_by(city) |>
    summarize(total_cases = n(),
                        recent_14d = sum(report_dt >= (ymd("2020-11-05") - 14)))

Created on 2024-03-04 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-04
#>  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)
#>  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)
#>  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)
#>  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)
#>  knitr         1.45    2023-10-30 [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)
#>  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)
#>  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