# para instalar todos los paquetes
if(!require("learnr")) install.packages("learnr")
if(!require("remotes")) install.packages("remotes")
if(!require("tidyverse")) install.packages("tidyverse")
if(!require("tibble")) install.packages("tibble")
if(!require("lubridate")) install.packages("lubridate")
if(!require("outbreaks")) install.packages("outbreaks")
if(!require("incidence")) install.packages("incidence")
if(!require("EpiEstim")) install.packages("EpiEstim")
if(!require("skimr")) install.packages("skimr")
if(!require("furrr")) install.packages("furrr")
if(!require("tictoc")) install.packages("tictoc")
if(!require("janitor")) install.packages("janitor")
if(!require("patchwork")) install.packages("patchwork")
if(!require("incidenceflow")) remotes::install_github("avallecam/incidenceflow")
if(!require("survey")) install.packages("survey")
if(!require("srvyr")) install.packages("srvyr")
# if(!require("serosurvey")) remotes::install_github("avallecam/serosurvey")
library(learnr)

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  echo = FALSE,
  message = FALSE,
  warning = FALSE
)

# knitr::opts_chunk$set(fig.width=10, fig.height=4)

options(tidyverse.quiet = TRUE)

Taller 1

Taller 1.1

mantén copiado en el portapapeles al pipe: %>%

Más detalles de este flujo aquí.

library(tidyverse) #magrittr and purrr packages
library(lubridate) #ymd
library(outbreaks) #sample data
library(incidence) #core functions
library(tibble)
#workflow specific functions
library(incidenceflow) 

Accede a la base con pluck()

Contexto:

Indicaciones:

ebola_sim$linelist
# ebola_sim$linelist$_nombre_de_variable_aqui_ # ---- conciso pero poco legible
# ebola_sim %>% pluck("_linelist_aqui_") # ----  _debe_ ir con comas
# ebola_sim %>% pluck("_______________") %>% pull(_nombre_de_variable_aqui_) # ----  _puede_ ir sin comas
# ebola_sim$linelist$date_of_onset # ---- conciso pero poco legible
# ebola_sim %>% pluck("linelist") # ----  _debe_ ir con comas
# ebola_sim %>% pluck("linelist") %>% pull(date_of_onset) # ----  _puede_ ir sin comas

Taller 1.2

copiar: %>%

Configurar datos con incidence()

Indicaciones:

dat <- ebola_sim %>% pluck("linelist") %>% pull(date_of_onset)
i.7 <- incidence(dat, interval=7)
i.7
# plot(___)
# i.7[1:__]
# plot(___[1:__])
# plot(i.7)
# i.7[1:20]
# plot(i.7[1:20])

Taller 1.3

copiar: %>%

Ajusta datos a curva con fit()

Indicaciones:

f1 <- fit(i.7[1:20])
f1
# class(___)
# class(f1)

Taller 1.4

copiar: %>%

Usa tidy() y glance() para ver los resultados

# tidy
f1 %>% tidy_incidence()
# glance
f1 %>% glance_incidence()

Taller 1.5

copiar: %>%

Usa purrr::nest() para anidar por grupos

Indicaciones:

ebola_sim %>% 

  # extrae base
  pluck("linelist") %>% 

  # filtro explícito
  filter(date_of_onset<lubridate::ymd(20141007)) %>% 

  # estratifica por grupos
  group_by(gender) %>%

  # bases anidadas --- aquí se transforma la base!
  nest()
# copia aquí el flujo por partes
# para ver cómo cambia el output

Taller 1.6

copiar: %>%

Usa purrr::map() para aplicar una función a múltiples grupos

Indicaciones:

# extrae base
incidence_nest <- ebola_sim %>% 
  # extrae base
  pluck("linelist") %>% 
  # filtro explícito
  filter(date_of_onset<lubridate::ymd(20141007)) %>% 
  # agrupar para estratificar
  group_by(gender) %>%
  # bases anidadas --- aquí se transforma la base!
  nest() %>% 
  ungroup()
incidence_nest %>% 

  # aplicar varias funciones del flujo

  # extraer fechas
  mutate(only_dates = map(.x = data,
                          .f = pull,
                          date_of_onset)) %>% 

  # configurar
  mutate(incidence_strata = map(.x = only_dates,
                                .f = incidence,
                                interval=7)) %>% 

  # ajustar
  mutate(strata_fit = map(.x = incidence_strata,
                          .f = fit)) %>% 

  # generar tabla tidy
  mutate(strata_fit_tidy = map(.x = strata_fit,
                               .f = tidy_incidence)) %>% 

  # generar tabla glance
  mutate(strata_fit_glance = map(.x = strata_fit,
                                 .f = glance_incidence))
# copia aquí el flujo por partes
# para ver cómo cambia el output

Taller 1.7

copiar: %>%

Extrae los resultados con unnest()

Indicaciones:

incidence_purrr <- 
  ebola_sim %>% 
  # extrae base
  pluck("linelist") %>% 
  # filtro explícito
  filter(date_of_onset<lubridate::ymd(20141007)) %>% 
  # estratifica por grupos
  group_by(gender) %>%
  # bases anidadas --- aquí se transforma la base!
  nest() %>% 
  ungroup() %>% 
  # aplicar varias funciones del flujo
  # extraer fechas
  mutate(only_dates = map(.x = data,
                          .f = pull,
                          date_of_onset)) %>% 

  # configurar
  mutate(incidence_strata = map(.x = only_dates,
                                .f = incidence,
                                interval=7)) %>% 
  # ajustar
  mutate(strata_fit = map(.x = incidence_strata,
                          .f = fit)) %>% 
  # generar tabla tidy
  mutate(strata_fit_tidy = map(.x = strata_fit,
                               .f = tidy_incidence)) %>% 
  # generar tabla glance
  mutate(strata_fit_glance = map(.x = strata_fit,
                                 .f = glance_incidence)) %>% 
  # keep only the tibbles
  select(-data,-only_dates,-incidence_strata,-strata_fit)
# tidy_incidence output
incidence_purrr %>% 

  # des-anidamos los resultados de la columna resultado
  unnest(cols = c(strata_fit_tidy))
category <- "_"

incidence_purrr %>% 
  filter(gender==category) %>% 
  pull(strata_fit_tidy) %>% 
  pluck(1)
# incidence_purrr %>% count(gender)
# category <- "f"
# 
# incidence_purrr %>% 
#   filter(gender==category) %>% 
#   pull(strata_fit_tidy) %>% 
#   pluck(1)

Repaso 1

ebola_sim %>% 
  # extrae base
  pluck("linelist") %>% 
  # filtro explícito
  filter(date_of_onset<lubridate::ymd(20141007)) %>% 
  # estratifica por grupos
  group_by(gender) %>%
  # bases anidadas --- aquí se transforma la base!
  nest() %>% 
  # aplicar varias funciones del flujo
  # extraer fechas
  mutate(only_dates = map(.x = data,
                          .f = pull,
                          date_of_onset)) %>% 
  # configurar
  mutate(incidence_strata = map(.x = only_dates,
                                .f = incidence,
                                interval=7)) %>% 
  # ajustar
  mutate(strata_fit = map(.x = incidence_strata,
                          .f = fit)) %>% 
  # generar tabla tidy
  mutate(strata_fit_tidy = map(.x = strata_fit,
                               .f = tidy_incidence)) %>% 
  # generar tabla glance
  mutate(strata_fit_glance = map(.x = strata_fit,
                                 .f = glance_incidence)) %>% 

  # keep only the tibbles
  select(-data,-only_dates,-incidence_strata,-strata_fit) %>% 

  # des-anidamos columna resultado
  unnest(cols = c(strata_fit_tidy))

Extra

Taller 1

copiar: %>%

Indicación:

f2 <- fit_optim_split(i.7)
f2
# f2 %>% pluck("___") %>% tidy_incidence()
# f2 %>% pluck("___") %>% ______________()
# f2 %>% pluck("fit") %>% tidy_incidence()
# f2 %>% pluck("fit") %>% glance_incidence()

copiar: %>%



avallecam/incidenceflow documentation built on July 9, 2021, 12:04 p.m.