R/data.R

Defines functions getStatCan

Documented in getStatCan

#' Catalogue number of the Detailed confirmed cases of coronavirus disease
#' (COVID-19) Statcan's data table.
statcan_covid_catalogue_number <- "13-10-0766-01"

#' Get data from the Detailed confirmed cases of coronavirus disease
#' (COVID-19)
#'
#' Download the dataset Detailed confirmed cases of coronavirus
#' disease (COVID-19) (Preliminary data), Canada and format it to be
#' easily usable.
#'
#' To get the more up to date data, pass the parameter `refresh =
#' TRUE` to the function.
#'
#' The returned data.table belongs to the S3 class `covdata`.
#'
#' @param \dots arguments passed to cansim::get_cansim.
#'
#' @export
getStatCan <- function(...)
    ## Retrieve data.
    cansim::get_cansim(statcan_covid_catalogue_number, ...) %>%
        data.table %>%
        ## Transform the data in long format.
        .[,`Case identifier number` :=
               as.factor(as.numeric(`Case identifier number`))] %>%
        dcast(`Case identifier number` + `REF_DATE` ~ `Case information`,
              value.var = "VALUE") %>%
        ## Label factors.
        .[,Sex :=
               factor(Sex,
                      levels = c(1, 2, 9),
                      labels = c("Male", "Female", "Not stated"))] %>%
        .[,`Age group` :=
               factor(`Age group`,
                      levels = c(1:8, 99),
                      labels = c("0-19",
                                 "20-29",
                                 "30-39",
                                 "40-49",
                                 "50-59",
                                 "60-69",
                                 "70-79",
                                 "80+",
                                 "Not stated"))] %>%
        .[,Hospitalization :=
               factor(Hospitalization,
                      levels = c(1, 2, 9),
                      labels = c("Yes", "No", "Not stated"))] %>%
        .[,`Hospitalization, previous status` :=
               factor(`Hospitalization, previous status`,
                      levels = c(1, 2, 9),
                      labels = c("Yes", "No", "Not stated"))] %>%
        .[,Death :=
               factor(Death,
                      levels = c(1, 2, 9),
                      labels = c("Yes", "No", "Not stated"))] %>%
        .[,`Death, previous status` :=
               factor(`Death, previous status`,
                      levels = c(1, 2, 9),
                      labels = c("Yes", "No", "Not stated"))] %>%
        .[,`Intensive care unit` :=
               factor(`Intensive care unit`,
                      levels = c(1, 2, 9),
                      labels = c("Yes", "No", "Not stated"))] %>%
        .[,`Intensive care unit, previous status` :=
               factor(`Intensive care unit, previous status`,
                      levels = c(1, 2, 9),
                      labels = c("Yes", "No", "Not stated"))] %>%
        .[,Transmission :=
               factor(Transmission,
                      levels = 1:3,
                      labels = c("Travel", "Community", "Pending"))] %>%

        ## Dates.
        .[,`Episode date` :=
               lubridate::ymd(paste(REF_DATE,
                                    `Episode date - month`,
                                    `Episode date - day`),
                              quiet = TRUE)] %>%
        .[,`Update date` :=
               lubridate::ymd(paste(REF_DATE,
                                    `Date case was last updated - month`,
                                    `Date case was last updated - day`))] %>%
        .[,c("REF_DATE",
             "Date case was last updated - day",
             "Date case was last updated - month",
             "Episode date - day",
             "Episode date - month") := NULL] %>%
        ## Custom S3 class.
        structure(class = c("covdata", class(.)))

#' Show the metadata for the Detailed confirmed cases of coronavirus
#' disease (COVID-19) table
#'
#' @export
statCan_info <- function() {
    cansim::get_cansim_table_overview(statcan_covid_catalogue_number)
}
ps-pat/covstuff documentation built on April 9, 2020, 12:46 a.m.