knitr::opts_chunk$set(echo = TRUE)
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
setwd("~/Dropbox/1.Epidat/Consultoria ASPE/Informes dinámicos/cvmppc/")
vac <- read.csv("feb-2023.xls0.csv")
colnames(vac)
## [1] "Número.Certificado" "Digitador"
## [3] "Vacunador" "Distribuidor"
## [5] "Provincia.Sitio" "Cantón.Sitio"
## [7] "Parroquia.Sitio" "Nombre.Sitio"
## [9] "Identificación.Propietario" "Nombre.Propietario"
## [11] "Producto" "Identificador.Producto"
## [13] "Tipo.Vacunación" "Fecha.Registro"
## [15] "Fecha.Vacunación" "Estado"
length(vac[vac$Estado != "anulado",])
## [1] 16
vac <- vac[vac$Estado != "anulado",]
## # A tibble: 1 × 2
## registro vacunados
## <dttm> <int>
## 1 2023-01-01 00:00:00 244259
length(unique(vac$Número.Certificado)) #857667
## [1] 11107
length(unique(vac$Identificador.Producto)) #297596
## [1] 243766
vac %>%
group_by(registro=floor_date(dmy_hms(Fecha.Registro), unit = "month"),
Producto) %>%
summarise(animales=length(Identificador.Producto)) %>%
mutate(Porcentaje=100*round(animales/sum(animales),4))
## `summarise()` has grouped output by 'registro'. You can override using the
## `.groups` argument.
## # A tibble: 4 × 4
## # Groups: registro [1]
## registro Producto animales Porcentaje
## <dttm> <chr> <int> <dbl>
## 1 2023-01-01 00:00:00 Cerda levante 108939 44.6
## 2 2023-01-01 00:00:00 Cerda madre 10857 4.44
## 3 2023-01-01 00:00:00 Cerdo levante 123210 50.4
## 4 2023-01-01 00:00:00 Verraco 1253 0.51
ggplotly(vac %>%
group_by(registro=floor_date(dmy_hms(Fecha.Registro), unit = "month"),
Producto,
Tipo.Vacunación) %>%
summarise(animales=n()) %>%
ggplot()+
geom_col(aes(Producto, animales))+
facet_wrap(~Tipo.Vacunación)+
theme(axis.text.x = element_text(angle=90)))
## `summarise()` has grouped output by 'registro', 'Producto'. You can override
## using the `.groups` argument.
Añado año y mes de vacunación
vac$year <- year(dmy(vac$Fecha.Vacunación))
vac$month <- month(dmy(vac$Fecha.Vacunación))
vac %>%
summarise(predios=length(unique(
paste(Identificación.Propietario, Nombre.Sitio))))
## predios
## 1 10137
vac$dif_vac_reg <- as.numeric(dmy(substr(vac$Fecha.Registro,1,10)) - dmy(vac$Fecha.Vacunación))
summary(vac$dif_vac_reg)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 4.00 11.00 16.94 21.00 409.00
Muestra el porcentaje de certificados que son ingresados en más de 30 días
vac_diferencia_registro <- vac %>%
group_by(Provincia.Sitio) %>%
summarise(cuv_ingreso_hasta_30dias=length(unique(Número.Certificado)),
cuv_ingreso_mayor_30_dias=length(unique(Número.Certificado[dif_vac_reg >30])),
Porcentage_mayor_30_d = round(cuv_ingreso_mayor_30_dias / (cuv_ingreso_mayor_30_dias+cuv_ingreso_hasta_30dias)*100)) %>%
arrange(desc(Porcentage_mayor_30_d))
vac_dif <- datatable(vac_diferencia_registro)
vac_dif
ggplotly(vac %>%
group_by(Provincia.Sitio, dif_vac_reg, Número.Certificado) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(animales_vacunados=n(),
cuv=length(unique(Número.Certificado))) %>%
ggplot()+
geom_boxplot(aes(Provincia.Sitio, dif_vac_reg), outlier.size=0.01)+
theme_minimal()+
theme(axis.text.x = element_text(angle=90))+
theme(axis.text.x = element_text(size=8))+
ylab("Diferencia en días del registro"))
## `summarise()` has grouped output by 'Provincia.Sitio', 'dif_vac_reg'. You can
## override using the `.groups` argument.
vac %>%
group_by(
registro=floor_date(dmy_hms(Fecha.Registro), unit = "month")) %>%
summarise(vacunados=length(Identificador.Producto))
## # A tibble: 1 × 2
## registro vacunados
## <dttm> <int>
## 1 2023-01-01 00:00:00 244259
vac_mes_registro <- vac %>%
group_by(vacunacion=floor_date(dmy(Fecha.Vacunación), unit = "month")) %>%
summarise(vacunados=length(Identificador.Producto))
vac_mes <- datatable(vac_mes_registro)
vac_mes
Su fecha de registro obedece a la fecha de este reporte
registro <-vac %>%
group_by(
Provincia.Sitio,
# registro=floor_date(dmy_hms(Fecha.Registro), unit = "month")
vacunacion=floor_date(dmy(Fecha.Vacunación), unit = "month")
) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
ggplot()+
geom_col(aes(vacunacion, vacunados))+
theme_minimal()+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Provincia.Sitio, ncol=3)
## `summarise()` has grouped output by 'Provincia.Sitio'. You can override using
## the `.groups` argument.
ggplotly(registro)
datatable(vac %>%
group_by(Provincia.Sitio,
vacunacion=floor_date(dmy(Fecha.Vacunación), unit = "month")) %>%
summarise(vacunados=length(Identificador.Producto),
CUV=length(unique(Número.Certificado))) %>%
arrange(desc(CUV)))
## `summarise()` has grouped output by 'Provincia.Sitio'. You can override using
## the `.groups` argument.
ggplotly(vac %>%
group_by(mes=floor_date(dmy(Fecha.Vacunación), unit = "month")) %>%
summarise(vacunados=length(Provincia.Sitio)) %>%
ggplot()+
geom_line(aes(mes, vacunados))+
geom_point(aes(mes, vacunados), color="red")+
geom_line(aes(mes, mean(vacunados)), colour="blue"))
ggplotly(vac %>%
group_by(semana=floor_date(dmy(Fecha.Vacunación), unit = "week")) %>%
summarise(vacunados=length(Provincia.Sitio)) %>%
ggplot()+
geom_line(aes(semana, vacunados))+
geom_point(aes(semana, vacunados, color="red"))+
geom_line(aes(semana, mean(vacunados)), colour="blue")+
theme_minimal())
datatable(vac %>%
group_by(semana=floor_date(dmy(Fecha.Vacunación), unit = "week")) %>%
summarise(vacunados=length(Provincia.Sitio)))
ggplotly(vac %>%
group_by(mes=floor_date(dmy(Fecha.Vacunación), unit = "week")) %>%
summarise(vacunados=length(Provincia.Sitio)) %>%
ggplot()+
geom_line(aes(mes, vacunados))+
geom_point(aes(mes, vacunados, color="red"))+
geom_line(aes(mes, mean(vacunados)), colour="blue")+
theme_minimal())
ggplotly(vac %>%
group_by(mes=floor_date(dmy(Fecha.Vacunación), unit = "month"), Tipo.Vacunación) %>%
summarise(vacunados=length(Provincia.Sitio)) %>%
ggplot()+
geom_line(aes(mes, vacunados))+
geom_point(aes(mes, vacunados, color="red"))+
facet_wrap(~Tipo.Vacunación, nrow=4))
## `summarise()` has grouped output by 'mes'. You can override using the `.groups`
## argument.
vac_tipo_fecha <- vac %>%
group_by(mes_registro=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
mes_vacunacion=floor_date(dmy(Fecha.Vacunación), unit = "month"),
Tipo.Vacunación) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
ggplot()+
geom_line(aes(mes_vacunacion, vacunados), colour="green")+
geom_point(aes(mes_vacunacion, vacunados), colour="green")+
geom_col(aes(mes_registro, vacunados, fill="red"))+
geom_point(aes(mes_registro, vacunados, fill="red"))+
facet_wrap(~Tipo.Vacunación, nrow=4)+
xlab("Fechas de vacunacion (verde), fechas de registro (Rojo)")+
theme(legend.position = "none")
## `summarise()` has grouped output by 'mes_registro', 'mes_vacunacion'. You can
## override using the `.groups` argument.
ggplotly(vac_tipo_fecha)
#Tabla vacunación por fecha de vacunación
datatable(vac %>%
group_by(mes_registro=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
mes_vacunacion=floor_date(dmy(Fecha.Vacunación), unit = "month"),
Tipo.Vacunación) %>%
summarise(vacunados=length(Identificador.Producto)))
## `summarise()` has grouped output by 'mes_registro', 'mes_vacunacion'. You can
## override using the `.groups` argument.
vac %>%
group_by(mes_registro=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación) %>%
summarise(vacunados=length(Identificador.Producto))
## `summarise()` has grouped output by 'mes_registro'. You can override using the
## `.groups` argument.
## # A tibble: 3 × 3
## # Groups: mes_registro [1]
## mes_registro Tipo.Vacunación vacunados
## <date> <chr> <int>
## 1 2023-01-01 Autoservicio 105353
## 2 2023-01-01 Brigada/Foco 42
## 3 2023-01-01 Normal(Permanente) 138864
ggplotly(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
ggplot()+
geom_col(aes(mes, vacunados))+
facet_wrap(~Tipo.Vacunación), ncol=1)
## `summarise()` has grouped output by 'mes'. You can override using the `.groups`
## argument.
vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación) %>%
summarise(vacunados=length(Identificador.Producto))
## `summarise()` has grouped output by 'mes'. You can override using the `.groups`
## argument.
## # A tibble: 3 × 3
## # Groups: mes [1]
## mes Tipo.Vacunación vacunados
## <date> <chr> <int>
## 1 2023-01-01 Autoservicio 105353
## 2 2023-01-01 Brigada/Foco 42
## 3 2023-01-01 Normal(Permanente) 138864
ggplotly(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
arrange(desc(vacunados)) %>%
ggplot()+
geom_col(aes(Provincia.Sitio, vacunados, fill=(Tipo.Vacunación)))+
theme(axis.text.x = element_text(angle=90)))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
datatable(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto)))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
vac_pro_tipo <- vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
arrange(desc(vacunados)) %>%
ggplot()+
geom_col(aes(Provincia.Sitio, vacunados))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol = 1)
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
ggplotly(vac_pro_tipo)
vac_pro_tipo_cant <- vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación, Provincia.Sitio, Cantón.Sitio) %>%
filter(Provincia.Sitio == "Pichincha") %>%
summarise(vacunados=length(Identificador.Producto)) %>%
arrange(desc(vacunados)) %>%
ggplot()+
geom_col(aes(Cantón.Sitio, vacunados))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol = 1)
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación',
## 'Provincia.Sitio'. You can override using the `.groups` argument.
ggplotly(vac_pro_tipo_cant)
datatable(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Provincia.Sitio, Cantón.Sitio) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
arrange(desc(vacunados)))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación',
## 'Provincia.Sitio'. You can override using the `.groups` argument.
ggplotly(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación, Provincia.Sitio, Cantón.Sitio, Parroquia.Sitio) %>%
filter(Provincia.Sitio == "Pichincha") %>%
filter(Cantón.Sitio == "Quito") %>%
summarise(vacunados=length(Identificador.Producto)) %>%
ggplot()+
geom_col(aes(Parroquia.Sitio, vacunados))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol = 1))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación',
## 'Provincia.Sitio', 'Cantón.Sitio'. You can override using the `.groups`
## argument.
length(unique(paste(vac$Identificación.Propietario, vac$Nombre.Sitio)))
## [1] 10137
datatable(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Provincia.Sitio, Cantón.Sitio, Parroquia.Sitio) %>%
summarise(vacunados=length(Identificador.Producto),
predios=length(unique(paste(Identificación.Propietario, Nombre.Sitio)))))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación',
## 'Provincia.Sitio', 'Cantón.Sitio'. You can override using the `.groups`
## argument.
datatable(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Provincia.Sitio, Tipo.Vacunación, Vacunador) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
arrange(desc(vacunados)))
## `summarise()` has grouped output by 'mes', 'Provincia.Sitio',
## 'Tipo.Vacunación'. You can override using the `.groups` argument.
vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Vacunador) %>%
summarise(vacunados=length(Identificador.Producto)) %>%
sjmisc::descr()
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
##
## ## Basic descriptive statistics
##
##
## Grouped by: 19358, Autoservicio
##
## var type label n NA.prc mean sd se md trimmed
## vacunados integer vacunados 63 0 1672.27 2880.72 362.94 623 1085.2
## range iqr skew
## 19787 (7-19794) 1632.5 4.44
##
##
## Grouped by: 19358, Brigada/Foco
##
## var type label n NA.prc mean sd se md trimmed range iqr skew
## vacunados integer vacunados 2 0 21 0 0 21 21 0 (21-21) 0 NA
##
##
## Grouped by: 19358, Normal(Permanente)
##
## var type label n NA.prc mean sd se md trimmed
## vacunados integer vacunados 267 0 520.09 817.47 50.03 282 347.75
## range iqr skew
## 6312 (1-6313) 485.5 3.95
# n=número de vacunadores
# mean= número de vacunas aplicadas por cada vacunador en media
ggplotly(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto),
Media_vacunados_x_vacunador=round((vacunados/length(unique(Vacunador)))),0) %>%
ggplot()+
geom_col(aes(Provincia.Sitio, Media_vacunados_x_vacunador))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol=1))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
# n=número de vacunadores
# mean= número de vacunas aplicadas por cada vacunador en media
datatable(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto),
N_vacunadores=length(unique(Vacunador)),
Media_vacunados_x_vacunador=round((vacunados/length(unique(Vacunador))),0)))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
#Estadisticas sobre número de dosis aplicadas por distribuidores (Operadores) por provincia y tipo de vacunacíon ## Gráfico
ggplotly(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto),
Media_vacunados_x_distribuidor=round((vacunados/length(unique(Distribuidor)))),0) %>%
ggplot()+
geom_col(aes(Provincia.Sitio, Media_vacunados_x_distribuidor))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol=1))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
ggplotly(vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"), Tipo.Vacunación, Provincia.Sitio) %>%
mutate(Provincia.Sitio = (dplyr::recode(Provincia.Sitio, "Santo Domingo de los Tsáchilas" = "Santo Domingo"))) %>%
summarise(vacunados=length(Identificador.Producto),
Media_CUV_digitados=round((vacunados/length(unique(Digitador)))),0) %>%
ggplot()+
geom_col(aes(Provincia.Sitio, Media_CUV_digitados))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol=1))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación'. You can override
## using the `.groups` argument.
vac_digitador <- vac %>%
group_by(mes=floor_date(dmy(substr(vac$Fecha.Registro,1,10)), unit = "month"),
Tipo.Vacunación, Provincia.Sitio, Digitador) %>%
summarise(vacunados=length(Identificador.Producto),
Media_CUV_digitados_por_digitador=round((vacunados/length(unique(Digitador))),0))
## `summarise()` has grouped output by 'mes', 'Tipo.Vacunación',
## 'Provincia.Sitio'. You can override using the `.groups` argument.
ggplotly(ggplot(vac_digitador)+
geom_col(aes(Provincia.Sitio, Media_CUV_digitados_por_digitador))+
theme(axis.text.x = element_text(angle=90))+
facet_wrap(~Tipo.Vacunación, ncol=1))
datatable(vac_digitador)