# 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)
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)
pluck()
Contexto:
incidence
ebola_sim
es una lista de varios elementoslinelist
posee la base de datos de casos Indicaciones:
ebola_sim$linelist
con glimpse()
date_of_onset
con $
$
por pluck()
y pull()
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
copiar:
%>%
incidence()
Indicaciones:
plot()
para ver outputdat <- 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])
copiar:
%>%
fit()
Indicaciones:
f1
?f1 <- fit(i.7[1:20])
f1
# class(___)
# class(f1)
copiar:
%>%
tidy()
y glance()
para ver los resultadosbroom
# tidy f1 %>% tidy_incidence()
# glance f1 %>% glance_incidence()
copiar:
%>%
purrr::nest()
para anidar por gruposIndicaciones:
filter()
group_by()
nest()
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
copiar:
%>%
purrr::map()
para aplicar una función a múltiples gruposIndicaciones:
incidence_nest
map()
para aplicar la función enunciada en .f
al objeto .x
# 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
copiar:
%>%
unnest()
Indicaciones:
incidence_purrr
unnest
para de-anidar los resultados por grupo dentro de un solo tibble
filter() + pull() + pluck()
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)
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))
copiar:
%>%
Indicación:
fit_optim_split()
?f2
?"incidence_fit"
con la función tidy_incidence
y glance_incidence
fit
con pluck()
f2 <- fit_optim_split(i.7)
f2
# f2 %>% pluck("___") %>% tidy_incidence() # f2 %>% pluck("___") %>% ______________()
# f2 %>% pluck("fit") %>% tidy_incidence() # f2 %>% pluck("fit") %>% glance_incidence()
copiar:
%>%
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.