library(tidyverse)
Warning in for (i in seq_len(n)) { :
closing unused connection 3 (C:/PROGRA~1/R/R-44~1.1/library/grid/Meta/features.rds)
── Attaching core tidyverse packages ──────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.1 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2 ── Conflicts ────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(ggplot2)
library(lubridate)
library(janitor)
Attaching package: ‘janitor’
The following objects are masked from ‘package:stats’:
chisq.test, fisher.test
library(readr)
library(plotly)
Warning: package ‘plotly’ was built under R version 4.4.2Registered S3 method overwritten by 'data.table':
method from
print.data.table
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
Attaching package: ‘plotly’
The following object is masked from ‘package:ggplot2’:
last_plot
The following object is masked from ‘package:stats’:
filter
The following object is masked from ‘package:graphics’:
layout
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
options(scipen = 999)
d1 <- read_csv("Michael's Query 2.csv")
Rows: 4806421 Columns: 22── Column specification ────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (9): district, health_block, health_facility, health_subfacility, village, childname, anm_name, asha_n...
dbl (3): rchid, mobileno, weight
date (10): dob, registrationdate, bcg, opv0, penta1, penta2, penta3, mr1, mr2, death_date
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#d2 <- read_csv("Michael's Query 1.csv")
d1 %>% group_by(district, health_block) %>%
summarise()
`summarise()` has grouped output by 'district'. You can override using the `.groups` argument.
d1$district %>% tabyl()
. n percent valid_percent
Ahmadnagar(26) 189162 0.039356103013 0.039356128
Akola(5) 71696 0.014916712456 0.014916722
Amravati(7) 97536 0.020292854080 0.020292867
Aurangabad(19) 116858 0.024312893107 0.024312908
Beed(27) 108027 0.022475559257 0.022475573
Bhandara(10) 33759 0.007023729299 0.007023734
Buldana(4) 71101 0.014792919721 0.014792929
Buldhana(4) 21402 0.004452793461 0.004452796
Chandrapur(13) 65957 0.013722684717 0.013722693
Chhatrapati Sambhajinagar(19) 50044 0.010411905241 0.010411912
Dharashiv(29) 17534 0.003648036658 0.003648039
Dhule(2) 108767 0.022629519969 0.022629534
Gadchiroli(12) 41227 0.008577484161 0.008577490
Gondiya *(11) 42932 0.008932217964 0.008932224
Hingoli *(16) 46334 0.009640021130 0.009640027
Jalgaon(3) 200151 0.041642419588 0.041642446
Jalna(18) 83288 0.017328486206 0.017328497
Kolhapur(34) 138630 0.028842666924 0.028842685
Latur(28) 102092 0.021240752735 0.021240766
Mumbai (Suburban) *(22) 208821 0.043446256581 0.043446284
Mumbai Suburban(22) 101574 0.021132980236 0.021132993
Mumbai(23) 113304 0.023573465579 0.023573480
Nagpur(9) 197384 0.041066731358 0.041066757
Nanded(15) 147503 0.030688739085 0.030688758
Nandurbar(1) 86279 0.017950778760 0.017950790
Nashik(20) 291377 0.060622446515 0.060622484
Osmanabad(29) 50896 0.010589168115 0.010589175
Palghar(36) 171940 0.035772979521 0.035773002
Parbhani(17) 79423 0.016524353568 0.016524364
Pune(25) 485963 0.101107039937 0.101107103
Raigad(24) 24862 0.005172663818 0.005172667
Raigarh(24) 87295 0.018162162657 0.018162174
Ratnagiri(32) 33085 0.006883500218 0.006883505
Sangli(35) 125241 0.026057018309 0.026057035
Satara(31) 147699 0.030729517868 0.030729537
Sindhudurg(33) 16404 0.003412934489 0.003412937
Solapur(30) 197424 0.041075053559 0.041075079
Thane(21) 451469 0.093930390201 0.093930449
Wardha(8) 37431 0.007787707319 0.007787712
Washim *(6) 43689 0.009089715612 0.009089721
Yavatmal(14) 100858 0.020984012844 0.020984026
<NA> 3 0.000000624165 NA
d1 %>% ggplot(aes(x=dob, color = district)) + geom_density() + theme_bw()

d1 <- d1 %>% mutate(district_simp = case_match(district,
"Buldhana(4)" ~ "Buldana(4)" ,
"Chhatrapati Sambhajinagar(19)" ~ "Aurangabad(19)",
"Raigad(24)"~ "Raigarh(24)",
"Dharashiv(29)" ~ "Osmanabad(29)",
"Mumbai (Suburban) *(22)" ~ "Mumbai Suburban(22)",
.default = district
))
d1 <- d1 %>% filter(!is.na(district))
a <- d1 %>%
filter(!district == "Hingoli *(16)") %>%
ggplot(aes(x=penta1, color = district_simp)) + geom_density(alpha=0.2, adjust = 0.5) +
scale_x_date(limits = c(as.Date("2022-08-01"), as.Date("2024-12-01")), date_breaks = "3 months", date_labels = "%b %y") + theme_bw() + geom_vline(xintercept = as.Date("2024-01-01"),linetype = "dashed", color = "black") + labs(x = "Vaccine Date", y = "Relative Frequency", title = "ZOOMED: Relative Penta1 Vaccination Frequency BY District" )
ggplotly(a)
Warning: Removed 1857093 rows containing non-finite outside the scale range (`stat_density()`).
a

d1 %>%
filter(!district == "Hingoli *(16)") %>%
ggplot(aes(x=penta2, color = district_simp)) + geom_density(alpha=0.2, adjust = 0.5) +
scale_x_date(limits = c(as.Date("2022-08-01"), as.Date("2024-12-01")), date_breaks = "3 months", date_labels = "%b %y") + theme_bw() + geom_vline(xintercept = as.Date("2024-01-01"),linetype = "dashed", color = "black") + labs(x = "Vaccine Date", y = "Relative Frequency", title = "ZOOMED: Relative Penta2 Vaccination Frequency BY District" )

d1 %>%
filter(!district == "Hingoli *(16)") %>%
ggplot(aes(x=penta3, color = district_simp)) + geom_density(alpha=0.2, adjust = 0.5) +
scale_x_date(limits = c(as.Date("2022-08-01"), as.Date("2024-12-01")), date_breaks = "3 months", date_labels = "%b %y") + theme_bw() + geom_vline(xintercept = as.Date("2024-01-01"),linetype = "dashed", color = "black") + labs(x = "Vaccine Date", y = "Relative Frequency", title = "ZOOMED: Relative Penta3 Vaccination Frequency BY District" )

d1 %>%
filter(!district == "Hingoli *(16)") %>%
ggplot(aes(x=mr1, color = district_simp)) + geom_density(alpha=0.2, adjust = 0.5) +
scale_x_date(limits = c(as.Date("2023-02-01"), as.Date("2024-12-01")), date_breaks = "3 months", date_labels = "%b %y") + theme_bw() + geom_vline(xintercept = as.Date("2024-01-01"),linetype = "dashed", color = "black") + labs(x = "Vaccine Date (Note Axis)", y = "Relative Frequency", title = "ZOOMED: Relative MR1 Vaccination Frequency BY District" )

d1 %>%
filter(!district == "Hingoli *(16)") %>%
ggplot(aes(x=mr2, color = district_simp)) + geom_density(alpha=0.2, adjust = 0.5) +
scale_x_date(limits = c(as.Date("2023-08-01"), as.Date("2024-12-01")), date_breaks = "3 months", date_labels = "%b %y") + theme_bw() + geom_vline(xintercept = as.Date("2024-01-01"),linetype = "dashed", color = "black") + labs(x = "Vaccine Date (Note Axis)", y = "Relative Frequency", title = "ZOOMED: Relative MR2 Vaccination Frequency BY District" )


LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGphbml0b3IpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShwbG90bHkpDQoNCnNldHdkKGRpcm5hbWUocnN0dWRpb2FwaTo6Z2V0QWN0aXZlRG9jdW1lbnRDb250ZXh0KCkkcGF0aCkpDQpvcHRpb25zKHNjaXBlbiA9IDk5OSkNCmBgYA0KDQoNCmBgYHtyfQ0KZDEgPC0gcmVhZF9jc3YoIk1pY2hhZWwncyBRdWVyeSAyLmNzdiIpDQojZDIgPC0gcmVhZF9jc3YoIk1pY2hhZWwncyBRdWVyeSAxLmNzdiIpDQoNCmQxICU+JSBncm91cF9ieShkaXN0cmljdCwgaGVhbHRoX2Jsb2NrKSAlPiUgDQogIHN1bW1hcmlzZSgpDQoNCmQxJGRpc3RyaWN0ICU+JSB0YWJ5bCgpDQoNCmQxICU+JSBnZ3Bsb3QoYWVzKHg9ZG9iLCBjb2xvciA9IGRpc3RyaWN0KSkgKyBnZW9tX2RlbnNpdHkoKSArIHRoZW1lX2J3KCkNCg0KDQpkMSA8LSBkMSAlPiUgbXV0YXRlKGRpc3RyaWN0X3NpbXAgPSBjYXNlX21hdGNoKGRpc3RyaWN0LCANCiAgICAgICAgIkJ1bGRoYW5hKDQpIiB+ICJCdWxkYW5hKDQpIiAsIA0KICAgICAgICAiQ2hoYXRyYXBhdGkgU2FtYmhhamluYWdhcigxOSkiIH4gIkF1cmFuZ2FiYWQoMTkpIiwgDQogICAgICAgICJSYWlnYWQoMjQpIn4gIlJhaWdhcmgoMjQpIiwNCiAgICAgICAgIkRoYXJhc2hpdigyOSkiIH4gIk9zbWFuYWJhZCgyOSkiLCANCiAgICAgICAgIk11bWJhaSAoU3VidXJiYW4pICooMjIpIiB+ICJNdW1iYWkgU3VidXJiYW4oMjIpIiwNCiAgICAgICAgLmRlZmF1bHQgPSAgZGlzdHJpY3QNCiAgICAgICAgKSkNCg0KDQpkMSA8LSBkMSAlPiUgZmlsdGVyKCFpcy5uYShkaXN0cmljdCkpDQoNCmEgPC0gZDEgJT4lIA0KICAgZmlsdGVyKCFkaXN0cmljdCA9PSAiSGluZ29saSAqKDE2KSIpICU+JSANCmdncGxvdChhZXMoeD1wZW50YTEsIGNvbG9yID0gZGlzdHJpY3Rfc2ltcCkpICsgZ2VvbV9kZW5zaXR5KGFscGhhPTAuMiwgYWRqdXN0ID0gMC41KSArDQpzY2FsZV94X2RhdGUobGltaXRzID0gYyhhcy5EYXRlKCIyMDIyLTA4LTAxIiksIGFzLkRhdGUoIjIwMjQtMTItMDEiKSksIGRhdGVfYnJlYWtzID0gIjMgbW9udGhzIiwgZGF0ZV9sYWJlbHMgPSAiJWIgJXkiKSArIHRoZW1lX2J3KCkgKyAgIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IGFzLkRhdGUoIjIwMjQtMDEtMDEiKSxsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJibGFjayIpICsgbGFicyh4ID0gIlZhY2NpbmUgRGF0ZSIsIHkgPSAiUmVsYXRpdmUgRnJlcXVlbmN5IiwgdGl0bGUgPSAiWk9PTUVEOiBSZWxhdGl2ZSBQZW50YTEgVmFjY2luYXRpb24gRnJlcXVlbmN5IEJZIERpc3RyaWN0IiApICANCg0KZ2dwbG90bHkoYSkNCg0KYQ0KDQogZDEgJT4lIA0KIGZpbHRlcighZGlzdHJpY3QgPT0gIkhpbmdvbGkgKigxNikiKSAlPiUgDQpnZ3Bsb3QoYWVzKHg9cGVudGEyLCBjb2xvciA9IGRpc3RyaWN0X3NpbXApKSArIGdlb21fZGVuc2l0eShhbHBoYT0wLjIsIGFkanVzdCA9IDAuNSkgKw0Kc2NhbGVfeF9kYXRlKGxpbWl0cyA9IGMoYXMuRGF0ZSgiMjAyMi0wOC0wMSIpLCBhcy5EYXRlKCIyMDI0LTEyLTAxIikpLCBkYXRlX2JyZWFrcyA9ICIzIG1vbnRocyIsIGRhdGVfbGFiZWxzID0gIiViICV5IikgKyB0aGVtZV9idygpICsgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBhcy5EYXRlKCIyMDI0LTAxLTAxIiksbGluZXR5cGUgPSAiZGFzaGVkIiwgY29sb3IgPSAiYmxhY2siKSArIGxhYnMoeCA9ICJWYWNjaW5lIERhdGUiLCB5ID0gIlJlbGF0aXZlIEZyZXF1ZW5jeSIsIHRpdGxlID0gIlpPT01FRDogUmVsYXRpdmUgUGVudGEyIFZhY2NpbmF0aW9uIEZyZXF1ZW5jeSBCWSBEaXN0cmljdCIgKSAgDQoNCiBkMSAlPiUgDQogICAgZmlsdGVyKCFkaXN0cmljdCA9PSAiSGluZ29saSAqKDE2KSIpICU+JSANCmdncGxvdChhZXMoeD1wZW50YTMsIGNvbG9yID0gZGlzdHJpY3Rfc2ltcCkpICsgZ2VvbV9kZW5zaXR5KGFscGhhPTAuMiwgYWRqdXN0ID0gMC41KSArDQpzY2FsZV94X2RhdGUobGltaXRzID0gYyhhcy5EYXRlKCIyMDIyLTA4LTAxIiksIGFzLkRhdGUoIjIwMjQtMTItMDEiKSksIGRhdGVfYnJlYWtzID0gIjMgbW9udGhzIiwgZGF0ZV9sYWJlbHMgPSAiJWIgJXkiKSArIHRoZW1lX2J3KCkgKyAgIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IGFzLkRhdGUoIjIwMjQtMDEtMDEiKSxsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJibGFjayIpICsgbGFicyh4ID0gIlZhY2NpbmUgRGF0ZSIsIHkgPSAiUmVsYXRpdmUgRnJlcXVlbmN5IiwgdGl0bGUgPSAiWk9PTUVEOiBSZWxhdGl2ZSBQZW50YTMgVmFjY2luYXRpb24gRnJlcXVlbmN5IEJZIERpc3RyaWN0IiApICANCiANCiANCiAgZDEgJT4lIA0KICAgICBmaWx0ZXIoIWRpc3RyaWN0ID09ICJIaW5nb2xpICooMTYpIikgJT4lIA0KZ2dwbG90KGFlcyh4PW1yMSwgY29sb3IgPSBkaXN0cmljdF9zaW1wKSkgKyBnZW9tX2RlbnNpdHkoYWxwaGE9MC4yLCBhZGp1c3QgPSAwLjUpICsNCnNjYWxlX3hfZGF0ZShsaW1pdHMgPSBjKGFzLkRhdGUoIjIwMjMtMDItMDEiKSwgYXMuRGF0ZSgiMjAyNC0xMi0wMSIpKSwgZGF0ZV9icmVha3MgPSAiMyBtb250aHMiLCBkYXRlX2xhYmVscyA9ICIlYiAleSIpICsgdGhlbWVfYncoKSArICAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gYXMuRGF0ZSgiMjAyNC0wMS0wMSIpLGxpbmV0eXBlID0gImRhc2hlZCIsIGNvbG9yID0gImJsYWNrIikgKyBsYWJzKHggPSAiVmFjY2luZSBEYXRlIChOb3RlIEF4aXMpIiwgeSA9ICJSZWxhdGl2ZSBGcmVxdWVuY3kiLCB0aXRsZSA9ICJaT09NRUQ6IFJlbGF0aXZlIE1SMSBWYWNjaW5hdGlvbiBGcmVxdWVuY3kgQlkgRGlzdHJpY3QiICkgIA0KICANCiAgIGQxICU+JSANCiAgIGZpbHRlcighZGlzdHJpY3QgPT0gIkhpbmdvbGkgKigxNikiKSAlPiUgDQpnZ3Bsb3QoYWVzKHg9bXIyLCBjb2xvciA9IGRpc3RyaWN0X3NpbXApKSArIGdlb21fZGVuc2l0eShhbHBoYT0wLjIsIGFkanVzdCA9IDAuNSkgKw0Kc2NhbGVfeF9kYXRlKGxpbWl0cyA9IGMoYXMuRGF0ZSgiMjAyMy0wOC0wMSIpLCBhcy5EYXRlKCIyMDI0LTEyLTAxIikpLCBkYXRlX2JyZWFrcyA9ICIzIG1vbnRocyIsIGRhdGVfbGFiZWxzID0gIiViICV5IikgKyB0aGVtZV9idygpICsgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBhcy5EYXRlKCIyMDI0LTAxLTAxIiksbGluZXR5cGUgPSAiZGFzaGVkIiwgY29sb3IgPSAiYmxhY2siKSArIGxhYnMoeCA9ICJWYWNjaW5lIERhdGUgKE5vdGUgQXhpcykiLCB5ID0gIlJlbGF0aXZlIEZyZXF1ZW5jeSIsIHRpdGxlID0gIlpPT01FRDogUmVsYXRpdmUgTVIyIFZhY2NpbmF0aW9uIEZyZXF1ZW5jeSBCWSBEaXN0cmljdCIgKSAgDQoNCmBgYCANCg0KDQpgYGB7cn0NCmQxICU+JSANCiAgIGZpbHRlcighZGlzdHJpY3QgPT0gIkhpbmdvbGkgKigxNikiKSAlPiUgDQpnZ3Bsb3QoYWVzKHg9cGVudGExLCBjb2xvciA9IGRpc3RyaWN0X3NpbXApKSArIGdlb21fZGVuc2l0eShhbHBoYT0wLjA1LCBhZGp1c3QgPSAwLjUsIGJvdW5kcyA9IGMoMCwgSW5mKSkgKw0Kc2NhbGVfeF9kYXRlKGxpbWl0cyA9IGMoYXMuRGF0ZSgiMjAyMi0wOC0wMSIpLCBhcy5EYXRlKCIyMDI0LTEyLTAxIikpLCBkYXRlX2JyZWFrcyA9ICIzIG1vbnRocyIsIGRhdGVfbGFiZWxzID0gIiViICV5IikgKyB0aGVtZV9idygpICsgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBhcy5EYXRlKCIyMDI0LTAxLTAxIiksbGluZXR5cGUgPSAiZGFzaGVkIiwgY29sb3IgPSAiYmxhY2siKSArIGxhYnMoeCA9ICJWYWNjaW5lIERhdGUiLCB5ID0gIlJlbGF0aXZlIEZyZXF1ZW5jeSIsIHRpdGxlID0gIlpPT01FRDogUmVsYXRpdmUgUGVudGExIFZhY2NpbmF0aW9uIEZyZXF1ZW5jeSBCWSBEaXN0cmljdCIgKSAgKyANCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJub25lIikNCg0KDQpgYGANCg0KDQoNCmBgYHtyfQ0Kc3VtbWFyeSA8LSAgZDEgJT4lIA0KICBmaWx0ZXIoIWRpc3RyaWN0ID09ICJIaW5nb2xpICooMTYpIikgJT4lIA0KICBtdXRhdGUoZG9iX21vbnRoID0gDQogICAgICAgICAgIHBhc3RlKHllYXIoZG9iKSwgcXVhcnRlcihkb2IpLCBzZXAgPSAiXyIpLCANCiAgICAgICAgIG1yMV9iaW5hcnkgPSBpZl9lbHNlKCFpcy5uYShtcjEpLCAxLCAwKQ0KICAgICAgICAgKSAlPiUgDQoNCiAgZ3JvdXBfYnkoZGlzdHJpY3Rfc2ltcCwgZG9iX21vbnRoKSAlPiUgDQogIHN1bW1hcmlzZShtcjFfcmF0ZSA9IG1lYW4obXIxX2JpbmFyeSkpIA0KDQpiIDwtIHN1bW1hcnkgJT4lIA0KZmlsdGVyKCFkb2JfbW9udGggJWluJSBjKCIyMDIxXzIiLCAiMjAyMV8zIiwgIjIwMjRfMSIsICIyMDI0XzIiLCAiMjAyNF8zIiwgIjIwMjRfNCIpKSAlPiUgDQogIGdncGxvdChhZXMoeCA9IGRvYl9tb250aCwgeSA9IG1yMV9yYXRlLCBjb2xvciA9IGRpc3RyaWN0X3NpbXApKSArIA0KZ2VvbV9saW5lKGFlcyhncm91cCA9IGRpc3RyaWN0X3NpbXApKSAgDQoNCg0KZ2dwbG90bHkoYikNCg0KYGBgDQoNCmBgYHtyfQ0Kc3VtbWFyeV9ibG9jayA8LSAgZDEgJT4lIA0KICBmaWx0ZXIoZGlzdHJpY3QgPT0gIlNhdGFyYSgzMSkiKSAlPiUgDQogIG11dGF0ZShkb2JfbW9udGggPSANCiAgICAgICAgICAgcGFzdGUoeWVhcihkb2IpLCBxdWFydGVyKGRvYiksIHNlcCA9ICJfIiksIA0KICAgICAgICAgbXIxX2JpbmFyeSA9IGlmX2Vsc2UoIWlzLm5hKG1yMSksIDEsIDApDQogICAgICAgICApICU+JSANCg0KICBncm91cF9ieShoZWFsdGhfYmxvY2ssIGRvYl9tb250aCkgJT4lIA0KICBzdW1tYXJpc2UobXIxX3JhdGUgPSBtZWFuKG1yMV9iaW5hcnkpKSANCg0KDQoNCmMgPC0gc3VtbWFyeV9ibG9jayAlPiUgDQpmaWx0ZXIoIWRvYl9tb250aCAlaW4lIGMoIjIwMjFfMiIsICIyMDIxXzMiLCAiMjAyNF8xIiwgIjIwMjRfMiIsICIyMDI0XzMiLCAiMjAyNF80IikpICU+JSANCiAgZ2dwbG90KGFlcyh4ID0gZG9iX21vbnRoLCB5ID0gbXIxX3JhdGUsIGNvbG9yID0gaGVhbHRoX2Jsb2NrKSkgKyANCmdlb21fbGluZShhZXMoZ3JvdXAgPSBoZWFsdGhfYmxvY2spKSAgDQoNCmdncGxvdGx5KGMpDQoNCmBgYA0KDQo=