Summary

Row

Fully Vaccinated

8,766,052 ( 33.4 )%

Partially vaccinated

12,911,503 ( 49.1 )%

Total number of vaccines delivered

21,677,555 (82.5)%

Row


Number of adults vaccinated as at 2023-07-17. (Source of data: https://hiskenya.org/dhis-web-commons/security/login.action)

Population vaccinated by group

Population vaccinated by target group

Population vaccinated by gender

---
title: "Kenya COVID-19 Vaccination Coverage"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    source_code: embed
    vertical_layout: fill
---

```{r, include=FALSE}
library(httr)
library(rvest)
library(tidyverse)
#library(sf)
library(RecordLinkage)
library(lubridate)
library(flexdashboard)
# imported data -----------------------------------------------------------

options(scipen = 1000)

#read and clean data
khis_data <- read_csv("./KHIS Vaccination data/vacc_data.csv")%>%
  janitor::clean_names()%>%
  select(-periodid,-periodcode,-perioddescription)%>%
  rename(vaccination_date=periodname)%>%
  arrange(vaccination_date)

khis_data1 <- read_csv("./KHIS Vaccination data/vacc_data1.csv")%>%
  janitor::clean_names()%>%
  select(-periodid,-periodcode,-perioddescription)%>%
  rename(vaccination_date=periodname)%>%
  arrange(vaccination_date)

username <- "kingsleyjohn"
password <- "Kingsley1"



base_url1<- "https://hiskenya.org/api/29/analytics.html+css?dimension=dx:mSZ0ei6bhME;h0oEWJpgQoi;OCdXMaq0Od4;E4TGjFuvtUd;nGaZDxg99pi;Lk4hW6JbZNm;a4FtRrd4mYn;jjVxHi8D30p;fProGjda4Mq;zYCvS1dfiOJ;Puk3ssY5rRs;J4h0iw98w4v;xgqw09vIa1u;uwdG4NsbIrD;cWE8flkLkWH;wJ1hYn4Se42;KK2aFWRVrjY;hO9LARFUMqm;cxkrEwagrME;kwvavfkHs3N;IBkI6RZgL22;mfdeRruY3Aq;ctnDw4Qk1ei;UxMkIWab214;kpzwUdfAGgx;Q3VLWP4neMn;ZgiZb56pKQp;JE8r64gDkq9;tlTlbj1GnZs;amizM6oV7CN;KKHzubwyZFw;YWcQV3Hes1p;au7BKK4Q9ct;D7kpRKTBrVI;QhFRQGdSdms;jW01gPgax43&dimension=ou:LEVEL-1;HfVjCurKxh2&dimension=pe:20210301;20210302;20210303;20210304;20210305;20210306;20210307;20210308;20210309;20210310;20210311;20210312;20210313;20210314;20210315;20210316;20210317;20210318;20210319;20210320;20210321;20210322;20210323;20210324;20210325;20210326;20210327;20210328;20210329;20210330;20210331;20210401;20210402;20210403;20210404;20210405;20210406;20210407;20210408;20210409;20210410;20210411;20210412;20210413;20210414;20210415;20210416;20210417;20210418;20210419;20210420;20210421;20210422;20210423;20210424;20210425;20210426;20210427;20210428;20210429;20210430;20210501;20210502;20210503;20210504;20210505;20210506;20210507;20210508;20210509;20210510;20210511;20210512;20210513;20210514;20210515;20210516;20210517;20210518;20210519;20210520;20210521;20210522;20210523;20210524;20210525;20210526;20210527;20210528;20210529;20210530;20210531;20210601;20210602;20210603;20210604;20210605;20210606;20210607;20210608;20210609;20210610;20210611;20210612;20210613;20210614;20210615;20210616;20210617;20210618;20210619;20210620;20210621;20210622;20210623;20210624;20210625;20210626;20210627;20210628;20210629;20210630;20210701;20210702;20210703;20210704;20210705;20210706;20210707;20210708;20210709;20210710;20210711;20210712;20210713;20210714;20210715;20210716;20210717;20210718;20210719;20210720;20210721;20210722;20210723;20210724;20210725;20210726;20210727;20210728;20210729;20210730;20210731;20210801;20210802;20210803;20210804;20210805;20210806;20210807;20210808;20210809;20210810;20210811;20210812;20210813;20210814;20210815;20210816;20210817;20210818;20210819;20210820;20210821;20210822;20210823;20210824;20210825;20210826;20210827;20210828;20210829;20210830;20210831;20210901;20210902;20210903;20210904;20210905;20210906;20210907;20210908;20210909;20210910;20210911;20210912;20210913;20210914;20210915;20210916;20210917;20210918;20210919;20210920;20210921;20210922;20210923;20210924;20210925;20210926;20210927;20210928;20210929;20210930;20211001;20211002;20211003;20211004;20211005;20211006;20211007;20211008;20211009;20211010;20211011;20211012;20211013;20211014;20211015;20211016;20211017;20211018;20211019;20211020;20211021;20211022;20211023;20211024;20211025;20211026;20211027;20211028;20211029;20211030;20211031;20211101;20211102;20211103;20211104;20211105;20211106;20211107;20211108;20211109;20211110;20211111;20211112;20211113;20211114;20211115;20211116;20211117;20211118;20211119;20211120;20211121;20211122;20211123;20211124;20211125;20211126;20211127;20211128;20211129;20211130;20211201;20211202;20211203;20211204;20211205;20211206;20211207;20211208;20211209;20211210;20211211;20211212;20211213;20211214;20211215;20211216;20211217;20211218;20211219;20211220;20211221;20211222;20211223;20211224;20211225;20211226;20211227;20211228;20211229;20211230;20211231&displayProperty=NAME&tableLayout=true&columns=dx&rows=ou;pe&showHierarchy=true"

base_url1a <- "https://hiskenya.org/api/32/analytics.html?dimension=dx%3AmSZ0ei6bhME%3Bh0oEWJpgQoi%3BOCdXMaq0Od4%3BE4TGjFuvtUd%3BnGaZDxg99pi%3BLk4hW6JbZNm%3Ba4FtRrd4mYn%3BjjVxHi8D30p%3BfProGjda4Mq%3BzYCvS1dfiOJ%3BPuk3ssY5rRs%3BJ4h0iw98w4v%3Bxgqw09vIa1u%3BtlTlbj1GnZs%3BamizM6oV7CN%3BKKHzubwyZFw%3Bau7BKK4Q9ct%3BD7kpRKTBrVI%3BQhFRQGdSdms%3BjW01gPgax43&dimension=ou%3ALEVEL-JwTgQwgnl8h&dimension=pe%3A20210301%3B20210302%3B20210303%3B20210304%3B20210305%3B20210306%3B20210307%3B20210308%3B20210309%3B20210310%3B20210311%3B20210312%3B20210313%3B20210314%3B20210315%3B20210316%3B20210317%3B20210318%3B20210319%3B20210320%3B20210321%3B20210322%3B20210323%3B20210324%3B20210325%3B20210326%3B20210327%3B20210328%3B20210329%3B20210330%3B20210331%3B20210401%3B20210402%3B20210403%3B20210404%3B20210405%3B20210406%3B20210407%3B20210408%3B20210409%3B20210410%3B20210411%3B20210412%3B20210413%3B20210414%3B20210415%3B20210416%3B20210417%3B20210418%3B20210419%3B20210420%3B20210421%3B20210422%3B20210423%3B20210424%3B20210425%3B20210426%3B20210427%3B20210428%3B20210429%3B20210430%3B20210501%3B20210502%3B20210503%3B20210504%3B20210505%3B20210506%3B20210507%3B20210508%3B20210509%3B20210510%3B20210511%3B20210512%3B20210513%3B20210514%3B20210515%3B20210516%3B20210517%3B20210518%3B20210519%3B20210520%3B20210521%3B20210522%3B20210523%3B20210524%3B20210525%3B20210526%3B20210527%3B20210528%3B20210529%3B20210530%3B20210531%3B20210601%3B20210602%3B20210603%3B20210604%3B20210605%3B20210606%3B20210607%3B20210608%3B20210609%3B20210610%3B20210611%3B20210612%3B20210613%3B20210614%3B20210615%3B20210616%3B20210617%3B20210618%3B20210619%3B20210620%3B20210621%3B20210622%3B20210623%3B20210624%3B20210625%3B20210626%3B20210627%3B20210628%3B20210629%3B20210630%3B20210701%3B20210702%3B20210703%3B20210704%3B20210705%3B20210706%3B20210707%3B20210708%3B20210709%3B20210710%3B20210711%3B20210712%3B20210713%3B20210714%3B20210715%3B20210716%3B20210717%3B20210718%3B20210719%3B20210720%3B20210721%3B20210722%3B20210723%3B20210724%3B20210725%3B20210726%3B20210727%3B20210728%3B20210729%3B20210730%3B20210731%3B20210801%3B20210802%3B20210803%3B20210804%3B20210805%3B20210806%3B20210807%3B20210808%3B20210809%3B20210810%3B20210811%3B20210812%3B20210813%3B20210814%3B20210815%3B20210816%3B20210817%3B20210818%3B20210819%3B20210820%3B20210821%3B20210822%3B20210823%3B20210824%3B20210825%3B20210826%3B20210827%3B20210828%3B20210829%3B20210830%3B20210831%3B20210901%3B20210902%3B20210903%3B20210904%3B20210905%3B20210906%3B20210907%3B20210908%3B20210909%3B20210910%3B20210911%3B20210912%3B20210913%3B20210914%3B20210915%3B20210916%3B20210917%3B20210918%3B20210919%3B20210920%3B20210921%3B20210922%3B20210923%3B20210924%3B20210925%3B20210926%3B20210927%3B20210928%3B20210929%3B20210930%3B20211001%3B20211002%3B20211003%3B20211004%3B20211005%3B20211006%3B20211007%3B20211008%3B20211009%3B20211010%3B20211011%3B20211012%3B20211013%3B20211014%3B20211015%3B20211016%3B20211017%3B20211018%3B20211019%3B20211020%3B20211021%3B20211022%3B20211023%3B20211024%3B20211025%3B20211026%3B20211027%3B20211028%3B20211029%3B20211030%3B20211031%3B20211101%3B20211102%3B20211103%3B20211104%3B20211105%3B20211106%3B20211107%3B20211108%3B20211109%3B20211110%3B20211111%3B20211112%3B20211113%3B20211114%3B20211115%3B20211116%3B20211117%3B20211118%3B20211119%3B20211120%3B20211121%3B20211122%3B20211123%3B20211124%3B20211125%3B20211126%3B20211127%3B20211128%3B20211129%3B20211130%3B20211201%3B20211202%3B20211203%3B20211204%3B20211205%3B20211206%3B20211207%3B20211208%3B20211209%3B20211210%3B20211211%3B20211212%3B20211213%3B20211214%3B20211215%3B20211216%3B20211217%3B20211218%3B20211219%3B20211220%3B20211221%3B20211222%3B20211223%3B20211224%3B20211225%3B20211226%3B20211227%3B20211228%3B20211229%3B20211230%3B20211231&tableLayout=true&rows=ou%3Bpe&columns=dx&skipRounding=false&completedOnly=false"

base_url2<- "https://hiskenya.org/api/29/analytics.html+css?dimension=dx:mSZ0ei6bhME;h0oEWJpgQoi;OCdXMaq0Od4;E4TGjFuvtUd;nGaZDxg99pi;Lk4hW6JbZNm;a4FtRrd4mYn;jjVxHi8D30p;fProGjda4Mq;zYCvS1dfiOJ;Puk3ssY5rRs;J4h0iw98w4v;xgqw09vIa1u;uwdG4NsbIrD;cWE8flkLkWH;wJ1hYn4Se42;KK2aFWRVrjY;hO9LARFUMqm;cxkrEwagrME;kwvavfkHs3N;IBkI6RZgL22;mfdeRruY3Aq;ctnDw4Qk1ei;UxMkIWab214;kpzwUdfAGgx;Q3VLWP4neMn;ZgiZb56pKQp;JE8r64gDkq9;tlTlbj1GnZs;amizM6oV7CN;KKHzubwyZFw;YWcQV3Hes1p;au7BKK4Q9ct;D7kpRKTBrVI;QhFRQGdSdms;jW01gPgax43&dimension=ou:LEVEL-1;HfVjCurKxh2&dimension=pe:20220101;20220102;20220103;20220104;20220105;20220106;20220107;20220108;20220109;20220110;20220111;20220112;20220113;20220114;20220115;20220116;20220117;20220118;20220119;20220120;20220121;20220122;20220123;20220124;20220125;20220126;20220127;20220128;20220129;20220130;20220131;20220201;20220202;20220203;20220204;20220205;20220206;20220207;20220208;20220209;20220210;20220211;20220212;20220213;20220214;20220215;20220216;20220217;20220218;20220219;20220220;20220221;20220222;20220223;20220224;20220225;20220226;20220227;20220228;20220301;20220302;20220303;20220304;20220305;20220306;20220307;20220308;20220309;20220310;20220311;20220312;20220313;20220314;20220315;20220316;20220317;20220318;20220319;20220320;20220321;20220322;20220323;20220324;20220325;20220326;20220327;20220328;20220329;20220330;20220331;20220401;20220402;20220403;20220404;20220405;20220406;20220407;20220408;20220409;20220410;20220411;20220412;20220413;20220414;20220415;20220416;20220417;20220418;20220419;20220420;20220421;20220422;20220423;20220424;20220425;20220426;20220427;20220428;20220429;20220430;20220501;20220502;20220503;20220504;20220505;20220506;20220507;20220508;20220509;20220510;20220511;20220512;20220513;20220514;20220515;20220516;20220517;20220518;20220519;20220520;20220521;20220522;20220523;20220524;20220525;20220526;20220527;20220528;20220529;20220530;20220531;20220601;20220602;20220603;20220604;20220605;20220606;20220607;20220608;20220609;20220610;20220611;20220612;20220613;20220614;20220615;20220616;20220617;20220618;20220619;20220620;20220621;20220622;20220623;20220624;20220625;20220626;20220627;20220628;20220629;20220630;20220701;20220702;20220703;20220704;20220705;20220706;20220707;20220708;20220709;20220710;20220711;20220712;20220713;20220714;20220715;20220716;20220717;20220718;20220719;20220720;20220721;20220722;20220723;20220724;20220725;20220726;20220727;20220728;20220729;20220730;20220731;20220801;20220802;20220803;20220804;20220805;20220806;20220807;20220808;20220809;20220810;20220811;20220812;20220813;20220814;20220815;20220816;20220817;20220818;20220819;20220820;20220821;20220822;20220823;20220824;20220825;20220826;20220827;20220828;20220829;20220830;20220831;20220901;20220902;20220903;20220904;20220905;20220906;20220907;20220908;20220909;20220910;20220911;20220912;20220913;20220914;20220915;20220916;20220917;20220918;20220919;20220920;20220921;20220922;20220923;20220924;20220925;20220926;20220927;20220928;20220929;20220930;20221001;20221002;20221003;20221004;20221005;20221006;20221007;20221008;20221009;20221010;20221011;20221012;20221013;20221014;20221015;20221016;20221017;20221018;20221019;20221020;20221021;20221022;20221023;20221024;20221025;20221026;20221027;20221028;20221029;20221030;20221031;20221101;20221102;20221103;20221104;20221105;20221106;20221107;20221108;20221109;20221110;20221111;20221112;20221113;20221114;20221115;20221116;20221117;20221118;20221119;20221120;20221121;20221122;20221123;20221124;20221125;20221126;20221127;20221128;20221129;20221130;20221201;20221202;20221203;20221204;20221205;20221206;20221207;20221208;20221209;20221210;20221211;20221212;20221213;20221214;20221215;20221216;20221217;20221218;20221219;20221220;20221221;20221222;20221223;20221224;20221225;20221226;20221227;20221228;20221229;20221230;20221231&displayProperty=NAME&tableLayout=true&columns=dx&rows=ou;pe&showHierarchy=true"

base_url2a <- "https://hiskenya.org/api/32/analytics.html?dimension=dx%3AmSZ0ei6bhME%3Bh0oEWJpgQoi%3BOCdXMaq0Od4%3BE4TGjFuvtUd%3BnGaZDxg99pi%3BLk4hW6JbZNm%3Ba4FtRrd4mYn%3BjjVxHi8D30p%3BfProGjda4Mq%3BzYCvS1dfiOJ%3BPuk3ssY5rRs%3BJ4h0iw98w4v%3Bxgqw09vIa1u%3BtlTlbj1GnZs%3BamizM6oV7CN%3BKKHzubwyZFw%3Bau7BKK4Q9ct%3BD7kpRKTBrVI%3BQhFRQGdSdms%3BjW01gPgax43&dimension=ou%3ALEVEL-JwTgQwgnl8h&dimension=pe%3A20220101%3B20220102%3B20220103%3B20220104%3B20220105%3B20220106%3B20220107%3B20220108%3B20220109%3B20220110%3B20220111%3B20220112%3B20220113%3B20220114%3B20220115%3B20220116%3B20220117%3B20220118%3B20220119%3B20220120%3B20220121%3B20220122%3B20220123%3B20220124%3B20220125%3B20220126%3B20220127%3B20220128%3B20220129%3B20220130%3B20220131%3B20220201%3B20220202%3B20220203%3B20220204%3B20220205%3B20220206%3B20220207%3B20220208%3B20220209%3B20220210%3B20220211%3B20220212%3B20220213%3B20220214%3B20220215%3B20220216%3B20220217%3B20220218%3B20220219%3B20220220%3B20220221%3B20220222%3B20220223%3B20220224%3B20220225%3B20220226%3B20220227%3B20220228%3B20220301%3B20220302%3B20220303%3B20220304%3B20220305%3B20220306%3B20220307%3B20220308%3B20220309%3B20220310%3B20220311%3B20220312%3B20220313%3B20220314%3B20220315%3B20220316%3B20220317%3B20220318%3B20220319%3B20220320%3B20220321%3B20220322%3B20220323%3B20220324%3B20220325%3B20220326%3B20220327%3B20220328%3B20220329%3B20220330%3B20220331%3B20220401%3B20220402%3B20220403%3B20220404%3B20220405%3B20220406%3B20220407%3B20220408%3B20220409%3B20220410%3B20220411%3B20220412%3B20220413%3B20220414%3B20220415%3B20220416%3B20220417%3B20220418%3B20220419%3B20220420%3B20220421%3B20220422%3B20220423%3B20220424%3B20220425%3B20220426%3B20220427%3B20220428%3B20220429%3B20220430%3B20220501%3B20220502%3B20220503%3B20220504%3B20220505%3B20220506%3B20220507%3B20220508%3B20220509%3B20220510%3B20220511%3B20220512%3B20220513%3B20220514%3B20220515%3B20220516%3B20220517%3B20220518%3B20220519%3B20220520%3B20220521%3B20220522%3B20220523%3B20220524%3B20220525%3B20220526%3B20220527%3B20220528%3B20220529%3B20220530%3B20220531%3B20220601%3B20220602%3B20220603%3B20220604%3B20220605%3B20220606%3B20220607%3B20220608%3B20220609%3B20220610%3B20220611%3B20220612%3B20220613%3B20220614%3B20220615%3B20220616%3B20220617%3B20220618%3B20220619%3B20220620%3B20220621%3B20220622%3B20220623%3B20220624%3B20220625%3B20220626%3B20220627%3B20220628%3B20220629%3B20220630%3B20220701%3B20220702%3B20220703%3B20220704%3B20220705%3B20220706%3B20220707%3B20220708%3B20220709%3B20220710%3B20220711%3B20220712%3B20220713%3B20220714%3B20220715%3B20220716%3B20220717%3B20220718%3B20220719%3B20220720%3B20220721%3B20220722%3B20220723%3B20220724%3B20220725%3B20220726%3B20220727%3B20220728%3B20220729%3B20220730%3B20220731%3B20220801%3B20220802%3B20220803%3B20220804%3B20220805%3B20220806%3B20220807%3B20220808%3B20220809%3B20220810%3B20220811%3B20220812%3B20220813%3B20220814%3B20220815%3B20220816%3B20220817%3B20220818%3B20220819%3B20220820%3B20220821%3B20220822%3B20220823%3B20220824%3B20220825%3B20220826%3B20220827%3B20220828%3B20220829%3B20220830%3B20220831%3B20220901%3B20220902%3B20220903%3B20220904%3B20220905%3B20220906%3B20220907%3B20220908%3B20220909%3B20220910%3B20220911%3B20220912%3B20220913%3B20220914%3B20220915%3B20220916%3B20220917%3B20220918%3B20220919%3B20220920%3B20220921%3B20220922%3B20220923%3B20220924%3B20220925%3B20220926%3B20220927%3B20220928%3B20220929%3B20220930%3B20221001%3B20221002%3B20221003%3B20221004%3B20221005%3B20221006%3B20221007%3B20221008%3B20221009%3B20221010%3B20221011%3B20221012%3B20221013%3B20221014%3B20221015%3B20221016%3B20221017%3B20221018%3B20221019%3B20221020%3B20221021%3B20221022%3B20221023%3B20221024%3B20221025%3B20221026%3B20221027%3B20221028%3B20221029%3B20221030%3B20221031%3B20221101%3B20221102%3B20221103%3B20221104%3B20221105%3B20221106%3B20221107%3B20221108%3B20221109%3B20221110%3B20221111%3B20221112%3B20221113%3B20221114%3B20221115%3B20221116%3B20221117%3B20221118%3B20221119%3B20221120%3B20221121%3B20221122%3B20221123%3B20221124%3B20221125%3B20221126%3B20221127%3B20221128%3B20221129%3B20221130%3B20221201%3B20221202%3B20221203%3B20221204%3B20221205%3B20221206%3B20221207%3B20221208%3B20221209%3B20221210%3B20221211%3B20221212%3B20221213%3B20221214%3B20221215%3B20221216%3B20221217%3B20221218%3B20221219%3B20221220%3B20221221%3B20221222%3B20221223%3B20221224%3B20221225%3B20221226%3B20221227%3B20221228%3B20221229%3B20221230%3B20221231&tableLayout=true&rows=ou%3Bpe&columns=dx&skipRounding=false&completedOnly=false"

base_url3<- "https://hiskenya.org/api/29/analytics.html+css?dimension=dx:mSZ0ei6bhME;h0oEWJpgQoi;OCdXMaq0Od4;E4TGjFuvtUd;nGaZDxg99pi;Lk4hW6JbZNm;a4FtRrd4mYn;jjVxHi8D30p;fProGjda4Mq;zYCvS1dfiOJ;Puk3ssY5rRs;J4h0iw98w4v;xgqw09vIa1u;uwdG4NsbIrD;cWE8flkLkWH;wJ1hYn4Se42;KK2aFWRVrjY;hO9LARFUMqm;cxkrEwagrME;kwvavfkHs3N;IBkI6RZgL22;mfdeRruY3Aq;ctnDw4Qk1ei;UxMkIWab214;kpzwUdfAGgx;Q3VLWP4neMn;ZgiZb56pKQp;JE8r64gDkq9;tlTlbj1GnZs;amizM6oV7CN;KKHzubwyZFw;YWcQV3Hes1p;au7BKK4Q9ct;D7kpRKTBrVI;QhFRQGdSdms;jW01gPgax43&dimension=ou:LEVEL-1;HfVjCurKxh2&dimension=pe:20230101;20230102;20230103;20230104;20230105;20230106;20230107;20230108;20230109;20230110;20230111;20230112;20230113;20230114;20230115;20230116;20230117;20230118;20230119;20230120;20230121;20230122;20230123;20230124;20230125;20230126;20230127;20230128;20230129;20230130;20230131;20230201;20230202;20230203;20230204;20230205;20230206;20230207;20230208;20230209;20230210;20230211;20230212;20230213;20230214;20230215;20230216;20230217;20230218;20230219;20230220;20230221;20230222;20230223;20230224;20230225;20230226;20230227;20230228;20230301;20230302;20230303;20230304;20230305;20230306;20230307;20230308;20230309;20230310;20230311;20230312;20230313;20230314;20230315;20230316;20230317;20230318;20230319;20230320;20230321;20230322;20230323;20230324;20230325;20230326;20230327;20230328;20230329;20230330;20230331;20230401;20230402;20230403;20230404;20230405;20230406;20230407;20230408;20230409;20230410;20230411;20230412;20230413;20230414;20230415;20230416;20230417;20230418;20230419;20230420;20230421;20230422;20230423;20230424;20230425;20230426;20230427;20230428;20230429;20230430;20230501;20230502;20230503;20230504;20230505;20230506;20230507;20230508;20230509;20230510;20230511;20230512;20230513;20230514;20230515;20230516;20230517;20230518;20230519;20230520;20230521;20230522;20230523;20230524;20230525;20230526;20230527;20230528;20230529;20230530;20230531;20230601;20230602;20230603;20230604;20230605;20230607;20230608;20230609;20230610;20230611;20230612;20230613;20230614;20230615;20230616;20230617;20230618;20230619;20230620;20230621;20230622;20230623;20230624;20230625;20230626;20230627;20230628;20230629;20230630;20230701;20230702;20230703;20230704;20230705;20230706;20230707;20230708;20230709;20230710;20230711;20230712;20230713;20230714;20230715;20230716;20230717;20230718&displayProperty=NAME&tableLayout=true&columns=dx&rows=ou;pe&showHierarchy=true"

base_url3a <- "https://hiskenya.org/api/32/analytics.html?dimension=dx%3AmSZ0ei6bhME%3Bh0oEWJpgQoi%3BOCdXMaq0Od4%3BE4TGjFuvtUd%3BnGaZDxg99pi%3BLk4hW6JbZNm%3Ba4FtRrd4mYn%3BjjVxHi8D30p%3BfProGjda4Mq%3BzYCvS1dfiOJ%3BPuk3ssY5rRs%3BJ4h0iw98w4v%3Bxgqw09vIa1u%3BtlTlbj1GnZs%3BamizM6oV7CN%3BKKHzubwyZFw%3Bau7BKK4Q9ct%3BD7kpRKTBrVI%3BQhFRQGdSdms%3BjW01gPgax43&dimension=ou%3ALEVEL-JwTgQwgnl8h&dimension=pe%3A20230101%3B20230102%3B20230103%3B20230104%3B20230105%3B20230106%3B20230107%3B20230108%3B20230109%3B20230110%3B20230111%3B20230112%3B20230113%3B20230114%3B20230115%3B20230116%3B20230117%3B20230118%3B20230119%3B20230120%3B20230121%3B20230122%3B20230123%3B20230124%3B20230125%3B20230126%3B20230127%3B20230128%3B20230129%3B20230130%3B20230131%3B20230201%3B20230202%3B20230203%3B20230204%3B20230205%3B20230206%3B20230207%3B20230208%3B20230209%3B20230210%3B20230211%3B20230212%3B20230213%3B20230214%3B20230215%3B20230216%3B20230217%3B20230218%3B20230219%3B20230220%3B20230221%3B20230222%3B20230223%3B20230224%3B20230225%3B20230226%3B20230227%3B20230228%3B20230301%3B20230302%3B20230303%3B20230304%3B20230305%3B20230306%3B20230307%3B20230308%3B20230309%3B20230310%3B20230311%3B20230312%3B20230313%3B20230314%3B20230315%3B20230316%3B20230317%3B20230318%3B20230319%3B20230320%3B20230321%3B20230322%3B20230323%3B20230324%3B20230325%3B20230326%3B20230327%3B20230328%3B20230329%3B20230330%3B20230331%3B20230401%3B20230402%3B20230403%3B20230404%3B20230405%3B20230406%3B20230407%3B20230408%3B20230409%3B20230410%3B20230411%3B20230412%3B20230413%3B20230414%3B20230415%3B20230416%3B20230417%3B20230418%3B20230419%3B20230420%3B20230421%3B20230422%3B20230423%3B20230424%3B20230425%3B20230426%3B20230427%3B20230428%3B20230429%3B20230430%3B20230501%3B20230502%3B20230503%3B20230504%3B20230506%3B20230507%3B20230508%3B20230509%3B20230510%3B20230511%3B20230512%3B20230513%3B20230514%3B20230515%3B20230516%3B20230517%3B20230518%3B20230519%3B20230520%3B20230521%3B20230522%3B20230523%3B20230524%3B20230525%3B20230526%3B20230527%3B20230528%3B20230529%3B20230530%3B20230531%3B20230601%3B20230602%3B20230603%3B20230604%3B20230605%3B20230606%3B20230607%3B20230608%3B20230609%3B20230610%3B20230611%3B20230612%3B20230613%3B20230614%3B20230615%3B20230616%3B20230617%3B20230618%3B20230619%3B20230620%3B20230621%3B20230622%3B20230623%3B20230624%3B20230625%3B20230626%3B20230627%3B20230628%3B20230629%3B20230630%3B20230701%3B20230702%3B20230703%3B20230704%3B20230705%3B20230706%3B20230707%3B20230708%3B20230709%3B20230710%3B20230711%3B20230712%3B20230713%3B20230714%3B20230715%3B20230716%3B20230717%3B20230718&tableLayout=true&rows=ou%3Bpe&columns=dx&skipRounding=false&completedOnly=false"

#national data 2021
get_data1<- GET(base_url1, authenticate(username,password))
get_data1x<-content(get_data1, "text")
#national data 2022
get_data2<- GET(base_url2, authenticate(username,password))
get_data2x<-content(get_data2, "text")
#national data 2023
get_data3<- GET(base_url3, authenticate(username,password))
get_data3x<-content(get_data3, "text")

#county data 2021
get_data1a<- GET(base_url1a, authenticate(username,password))
get_data1ax<-content(get_data1a, "text")
#county data 2022
get_data2a<- GET(base_url2a, authenticate(username,password))
get_data2ax<-content(get_data2a, "text")
#county data 2023
get_data3a<- GET(base_url3a, authenticate(username,password))
get_data3ax<-content(get_data3a, "text")

#national data
covid_data1 <- as.data.frame(read_html(get_data1x) %>% rvest::html_table(fill=TRUE))
covid_data2 <- as.data.frame(read_html(get_data2x) %>% rvest::html_table(fill=TRUE))
covid_data3 <- as.data.frame(read_html(get_data3x) %>% rvest::html_table(fill=TRUE))
covid_data <- rbind(covid_data1, covid_data2, covid_data3)%>%
  janitor::clean_names()
#county data
county_covid_data1 <- as.data.frame(read_html(get_data1ax) %>% rvest::html_table(fill=TRUE))
county_covid_data2 <- as.data.frame(read_html(get_data2ax) %>% rvest::html_table(fill=TRUE))
county_covid_data3 <- as.data.frame(read_html(get_data3ax) %>% rvest::html_table(fill=TRUE))
county_covid_data <- rbind(county_covid_data1, county_covid_data2, county_covid_data3)%>%
  janitor::clean_names()


##
doses<- covid_data%>%
  mutate(periodname=as.Date(periodname))%>%
  rename(vaccination_date=periodname)%>%
  select(vaccination_date,  covid_19_people_fully_vaccinated_johnson_and_johnson, covid_19_vaccinated_1st_dose_moderna, covid_19_people_fully_vaccinated_moderna,
         covid_19_vaccinated_1st_dose_astrazeneca, covid_19_people_fully_vaccinated_astrazeneca, covid_19_vaccinated_1st_dose_pfizer,
         covid_19_people_fully_vaccinated_pfizer, covid_19_vaccinated_1st_dose_sinopharm, covid_19_people_fully_vaccinated_sinopharm)%>%
  filter(vaccination_date<today())

partially_vaccinated <- doses%>%
  group_by(vaccination_date)%>%
  rename(moderna=covid_19_vaccinated_1st_dose_moderna,
         astrazeneca=covid_19_vaccinated_1st_dose_astrazeneca,
         pfizer=covid_19_vaccinated_1st_dose_pfizer,
         sinopharm=covid_19_vaccinated_1st_dose_sinopharm)%>%
  ungroup()%>%
  select(vaccination_date, moderna, astrazeneca, pfizer, sinopharm)%>%
  pivot_longer(c( moderna, astrazeneca, pfizer, sinopharm), names_to="vaccine", values_to="doses")%>%
  mutate(vaccine=recode(vaccine, "moderna"="Moderna", "astrazeneca"="Astrazeneca", "pfizer"="Pfizer", "sinopharm"="Sinopharm" ))%>%
  distinct()%>%
  mutate(status="Partially vaccinated")

fully_vaccinated <- doses%>%
  group_by(vaccination_date)%>%
  rename(moderna=covid_19_people_fully_vaccinated_moderna,
         astrazeneca=covid_19_people_fully_vaccinated_astrazeneca,
         pfizer=covid_19_people_fully_vaccinated_pfizer,
         sinopharm=covid_19_people_fully_vaccinated_sinopharm)%>%
  ungroup()%>%
  select(vaccination_date, moderna, astrazeneca, pfizer, sinopharm,covid_19_people_fully_vaccinated_johnson_and_johnson )%>%
  pivot_longer(c( moderna, astrazeneca, pfizer, sinopharm,covid_19_people_fully_vaccinated_johnson_and_johnson), names_to="vaccine", values_to="doses")%>%
  mutate(vaccine=recode(vaccine, "moderna"="Moderna", "astrazeneca"="Astrazeneca", "pfizer"="Pfizer", "sinopharm"="Sinopharm", "covid_19_people_fully_vaccinated_johnson_and_johnson"="Johnson and Johnson" ))%>%
  distinct()%>%
  mutate(status="Fully vaccinated")

doses$vacc<- rowSums(doses[, c(2:10)], na.rm = T)


```

Summary {data-navmenu="Summary"}
============================================================

Row {data-width=400}
-----------------------------------------------------------------------



### Fully Vaccinated {.value-box}

```{r}

valueBox(
  value = paste(format(sum(fully_vaccinated$doses, na.rm = T), big.mark = ","), "", sep = " ", "(",round(sum(fully_vaccinated$doses, na.rm = T)/(25691266*1.02252)*100,1),")%"),
  caption = "Adult population fully vaccinated (proportion)",
  icon = "fa-battery-full",
  color = "#008837"
)
```





```{r}
#valueBox(
  #value =  paste(format((max(scrap_data_twitter$first_dose, na.rm = T)-max(scrap_data_twitter$second_dose, na.rm = T)), big.mark = ","), "", sep = " ", "(",round((max(scrap_data_twitter$first_dose, na.rm = T)-max(scrap_data_twitter$second_dose, na.rm = T))/(25691266*1.02252)*100,3),")%"),
  #caption = "Adult population partially vaccinated (proportion)",
  #icon = "fa-battery-half",
  #color = "red"
#)
```


### Partially vaccinated {.value-box}

```{r}

valueBox(
  value = paste(format(sum(partially_vaccinated$doses, na.rm = T), big.mark = ","), "", sep = " ", "(",round(sum(partially_vaccinated$doses, na.rm = T)/(25691266*1.02252)*100,1),")%"),
  caption = "Adult population partially vaccinated (proportion)",
  icon = "fa-battery-half",
  color = "red"
)
```


### Total number of vaccines delivered {.value-box}

```{r}

valueBox(
 paste(format(sum(doses$vacc, na.rm = T), big.mark = ","), "", sep = "", " (",round(sum(doses$vacc, na.rm = T)/(25691266*1.02252)*100,1),")%"),
  caption = "Available doses administered (proportion)",
  icon = "fa-medkit",
  color = "black"
)


```



Row
-----------------------------------------------------------------------

<br>

### **Number of adults vaccinated as at `r max(doses$vaccination_date, na.rm=T)`.                     (Source of data: https://hiskenya.org/dhis-web-commons/security/login.action)** 

```{r}
vaccinated<- rbind(partially_vaccinated, fully_vaccinated)

plot_data <- vaccinated%>%
  group_by(vaccination_date,status)%>%
  mutate(doses1=sum(doses, na.rm = T))%>%
  ungroup()%>%
  distinct(vaccination_date,status,.keep_all = T)%>%
  pivot_wider(id_cols=vaccination_date, names_from = status, values_from = doses1)%>%
  rename(dose1=`Partially vaccinated`,dose2=`Fully vaccinated`)

plot_data<- plot_data%>%
  arrange(vaccination_date)%>%
  dplyr::select(vaccination_date, dose1, dose2)%>%
  rename(date=vaccination_date)%>%
  distinct()%>%
  mutate(diffr=dose2-dplyr::lag(dose2))%>%
  mutate(diffr2=dose1-dplyr::lag(dose1))%>%
  mutate(dose1=ifelse(date<as.Date("2021-04-29")& dose1>800000,NA,dose1))%>%
  mutate(dose1a=ifelse(date==as.Date("2021-04-06"), 349786+5000, dose1))%>%
  mutate(dose1a=ifelse(is.na(dose1a), lag(dose1a,n=1)+5000, dose1a))%>%
    mutate(dose1a=ifelse(is.na(dose1a), lag(dose1a,n=1)+5000, dose1a))%>%
  mutate(dose1a=ifelse(is.na(dose1a), lag(dose1a,n=1)+5000, dose1a))%>%
   mutate(dose1a=ifelse(is.na(dose1a), lag(dose1a,n=1)+5000, dose1a))%>%
   mutate(dose1a=ifelse(is.na(dose1a), lag(dose1a,n=1)+5000, dose1a))%>%
   mutate(dose1a=ifelse(is.na(dose1a), lag(dose1a,n=1)+5000, dose1a))%>%
  filter(date>as.Date("2021-03-01"))%>%
  #mutate(dose1a=ifelse(date>as.Date("2022-01-02"), dplyr::lag(dose1)-diffr, dose1a))%>%
  #mutate(dose1a=ifelse(date>as.Date("2022-01-03"), dplyr::lag(dose1)-diffr+4217194, dose1a))%>%
  mutate(dose1x=cumsum(dose1a))%>%
  mutate(dose2x=cumsum(dose2))
  

library(htmlwidgets)
library(htmltools)
fillOpacity = function(., alpha = 0.5) {
  css = sprintf("<style> .js-fill { fill-opacity: %s !important; } </style>", alpha)
  prependContent(., HTML(css))
} 

plotly::plot_ly(data = plot_data) %>%
  plotly::add_trace(
    x = ~date,
    # y = ~active_cum,
    y = ~dose1x,
    type = "scatter",
    mode="none",
   # mode = "lines+markers",
    # name = "Active",
    name = "Partially vaccinated",
   # line = list(color = "red"),
    #marker = list(color = "red"),
   fill = 'tozeroy',
   fillcolor="red"
  ) %>%
  plotly::add_trace(
    x = ~date,
    # y = ~active_cum,
    y = ~dose2x,
    type = "scatter",
    mode="none",
    #mode = "lines+markers",
    # name = "Active",
    name = "Fully vaccinated",
    #line = list(color = "#008837"),
    #marker = list(color = "#008837"),
    fill = 'tozeroy',
    fillcolor="#008837"
  ) %>%
  # plotly::add_trace(
  #   x = ~date,
  #   # y = ~active_cum,
  #   y = ~booster,
  #   type = "scatter",
  #   mode="none",
  #   #mode = "lines+markers",
  #   # name = "Active",
  #   name = "Boosted",
  #   #line = list(color = "#008837"),
  #   #marker = list(color = "#008837"),
  #   fill = 'tozeroy',
  #   fillcolor="#8c510a",
  #   alpha=0.6
  # ) %>%
  fillOpacity(alpha = 0.6)%>%
  #plotly::add_bars(
    #x = ~date,
    # y = ~active_cum,
    #y = ~freq,
    # name = "Active",
    #color =~doses
  #)%>%
  # plotly::add_trace(
  #   x = ~date,
  #   y = ~cumulative,
  #   type = "scatter",
  #   mode = "lines+markers",
  #   name = "Vaccines delivered to Kenya",
  #   line = list(color = "black"),
  #   marker = list(color = "black")
  # )%>%
  plotly::layout(
    bargap = 0,
    title = "",
    yaxis = list(title = "Cumulative number of people vaccinated"),
    xaxis = list(title = "Date"),
    legend = list(x = 0.1, y = 0.9),
    hovermode = "compare"
  )
  
```

```{r}
data_subvacc_all2 <- vaccinated%>%
  group_by(vaccination_date,status)%>%
  mutate(doses1=sum(doses, na.rm = T))%>%
  ungroup()%>%
  distinct(vaccination_date,status,.keep_all = T)%>%
  select(vaccination_date,status,doses1)%>%
  rename(date=vaccination_date,vaccination_status=status,number=doses1)

data_subvacc_all3 <- vaccinated%>%
  group_by(vaccination_date,status)%>%
  mutate(doses1=sum(doses, na.rm = T))%>%
  ungroup()%>%
  distinct(vaccination_date,status,.keep_all = T)%>%
  pivot_wider(id_cols=vaccination_date, names_from = status, values_from = doses1)%>%
  rename(Date=vaccination_date)
```

```{r, include=FALSE}
# Vaccines utilised {data-navmenu="Summary"}
# ============================================================
```



```{r, echo=F, message=F, warning=F,fig.width=16, fig.height=10}
# vaccination_data1b<- vaccination_data1%>%
#   filter(vaccination_date>as.Date("2021-01-01") & vaccination_date<as.Date("2021-04-29"))%>%
#   group_by(vaccination_date)%>%
#   dplyr::count()%>% 
#   ungroup()%>%
#   dplyr::rename(dose1=n)%>%
#   mutate(dose2=NA)%>%
#   mutate(booster=NA)%>%
#   mutate(dose1=cumsum(dose1))%>%
#   mutate(dose2=cumsum(dose2))%>%
#   mutate(booster=cumsum(booster))
# 
# twitter_data1<- scrap_data_twitter%>%
#   dplyr::select(date, first_dose,second_dose,booster_dose)%>%
#   dplyr::rename("dose1"=first_dose, "dose2"=second_dose,"booster"=booster_dose)%>%
#   dplyr::rename( "vaccination_date"=date)%>%
#   group_by(vaccination_date)%>%
#   mutate(dose1a=dose1-(dose2+booster))%>%
#   mutate(dose1a=ifelse(is.na(dose1a), dose1, dose1a))%>%
#   ungroup()%>%
#   dplyr::select(-dose1)%>%
#   dplyr::rename(dose1=dose1a)
# 
# data_subvacc_all<- rbind(data_subvacc, data_subvacc1)
# x<- max(data_subvacc_all$partially_vaccinated, na.rm=T)
# data_subvacc_all<-data_subvacc_all%>%
#   mutate(partially_vaccinated=ifelse(is.na(partially_vaccinated),x-(second_dose+booster_dose), partially_vaccinated))
# 
# 
# utilised<- data_subvacc_all1aa%>%
#   mutate(date1=floor_date(date,"month")+7)%>%
#   group_by(date1)%>%
#   mutate_at(vars(partially_vaccinated, second_dose, cumulative), funs(max(., na.rm=T)))%>%
#   ungroup()%>%
#   dplyr::select(date1, partially_vaccinated, second_dose, cumulative)%>%
#   mutate(second_dose=ifelse(is.infinite(second_dose), 0, second_dose*2))%>%
#   distinct()%>%
#   mutate(utilised=abs(partially_vaccinated)+abs(second_dose))%>%
#   mutate(utilised=ifelse(date1%in%as.Date("2022-02-08"),17380234, utilised))%>%
#   mutate(remaining=cumulative-utilised)%>%
#   mutate(utilised=ifelse(date1%in%as.Date("2022-03-08"), 17487866, utilised))%>%
#   mutate(remaining=ifelse(date1%in%as.Date("2022-03-08"), 17167259, remaining))%>%
#   dplyr::select(date1, utilised, remaining)%>%
#   distinct()%>%
#   pivot_longer(cols=c(utilised, remaining), names_to="vaccines", values_to="vacc_value")%>%
#   mutate(vaccines=recode(vaccines, "utilised"="Vaccines Utilised", "remaining"="Vaccines remaining"))%>%
#   filter(date1>as.Date("2021-03-01"))%>%
#   mutate(vacc_value=ifelse(vacc_value==1588892, 1488892, vacc_value))
# 
# utilised$vaccines<- fct_relevel(utilised$vaccines,"Vaccines Utilised")
# ggplot(utilised, aes(x=date1, y=vacc_value, fill=vaccines))+geom_col(position = "dodge")+theme_bw()+scale_fill_brewer(palette="Set1")+
#   scale_x_date(date_labels = "%b-%Y", date_breaks = "1 month")+
#   labs(x="Period", y="Frequency", fill="")+scale_y_continuous(labels = scales::comma)+theme(text=element_text(size=16))
```

```{r, include=FALSE}
# Vaccines delivered {data-navmenu="Summary"}
# ============================================================
```



```{r, echo=F}

# quantity_received<- openxlsx::read.xlsx("~/Dropbox/vaccine_data/vaccination_may 2021.xlsx","Quantity_Received" )%>%
#   janitor::clean_names()%>%
#   mutate(expiry_date=janitor::excel_numeric_to_date(expiry_date))%>%
#   mutate(vaccine_arrival_date=janitor::excel_numeric_to_date(vaccine_arrival_date))%>%
#   arrange(vaccine_arrival_date)%>%
#   group_by(vaccine_arrival_date)%>%
#   mutate(quantity_received=sum(as.numeric(quantity_received), na.rm=T))%>%
#   ungroup()%>%
#   mutate(country=recode(country,"SSI LIVE SCIENCES PVT. INDIA"="India (procured by Kenya)", "MOH South Sudan"="South Sudan"))%>%
# dplyr::rename("Arrival date"=vaccine_arrival_date, "Quantity received"=quantity_received, "Expiry date"=expiry_date, "Country donated"=country, "Vaccine type"=vaccine)%>%
#   mutate(`No. of days from receiving vaccine to expiry`=`Expiry date`-`Arrival date`)%>%
#   select("Arrival date","Vaccine type", "Quantity received", "Country donated", "Expiry date", "No. of days from receiving vaccine to expiry")
#   #select(vaccine_arrival_date,quantity_received )%>%
#   #distinct()%>%
#   #mutate(quantity_received=ifelse(is.na(quantity_received), 0, quantity_received))%>%
#   #mutate(cumulative=cumsum(quantity_received))
# 
# library(DT)
# 
# dt1 <-   datatable(quantity_received, rownames=F, 
#                     caption = "Vaccines delivered in Kenya by source",
#             # filter = 'top',
#               callback=JS('$("a.buttons-collection").css("background","#008CBA");
#            $("a.buttons-collection").css("font-size","15px");
#            $("a.buttons-collection").css("border-radius", "6px");
#            $("a.buttons-collection").css("margin-right","0px");
#            return table;'),
#         extensions = 'Buttons',
#         options = list(searching=T,
#                        paging = T,
#                        bInfo = F,
#                        columnDefs = list(list(className = 'dt-center',
#                                          targets = "_all")),
#                        pageLength = 15,
#                        initComplete = JS("function(settings, json) {",
#                                          "$(this.api().table().header()).css({'background-color': 'white', 'color': '#003333'});",
#                                          "}"),
#                        dom = 'Bfrtip',
#                        buttons = list(
#                                       list(extend = 'collection',
#                                            buttons = c('excel', 'csv'),
#                                            text = 'Download Data')
#                        )
#         )
#   )%>%formatCurrency('Quantity received',currency = "", interval = 3, mark = ",")%>%formatRound('Quantity received', 0)
# 
# 
# 
# dt1

```


```{r, include=FALSE}
# Vaccination status {data-navmenu="Vaccination status"}
# ============================================================
# 
# The data is from the Ministry of health and it was last updated on: `r max(doses$vaccination_date, na.rm=T)`  
```



```{r, echo=FALSE,message=F, warning=F,fig.width=16, fig.height=10,eval=FALSE}
# kenyapop<- read_csv("kenya_population.csv")%>%
#   janitor::clean_names()%>%
#   filter(county_filter%in%"County")%>%
#   mutate(county_subcounty=str_to_title(county_subcounty))%>%
#   mutate(ages=as.numeric(ages))%>%
#   filter(!is.na(ages))%>%
#   filter(ages<101 & ages>17)%>%
#   select(county_subcounty, total)%>%
#   dplyr::group_by(county_subcounty)%>%
#   mutate(total=sum(total, na.rm=T))%>%
#   ungroup()%>%
#   distinct()%>%
#   mutate(county_subcounty=recode(county_subcounty, "Elgeyo/Marakwet"="Elgeyo Marakwet", "Homa_bay"="Homa Bay", "Murang'a"="Muranga", "Nairobi_city"="Nairobi","Taita/Taveta"="Taita Taveta","Tana_river"="Tana River", "Tharaka-Nithi"="Tharaka Nithi","Trans_nzoia"="Trans Nzoia","Uasin_gishu"="Uasin Gishu", "West_pokot"="West Pokot"))%>%
#  rename(county=county_subcounty)%>%
#   mutate(county=str_sub(county,1))
# 
# data2a <- county_covid_data%>%
#   select(organisationunitname,total_covid_vaccinated,total_covid_vaccinated_1st_dose,total_covid_vaccinated_2nd_dose)%>%
#   group_by(organisationunitname)%>%
#   mutate(total_vaccinated=sum(total_covid_vaccinated,na.rm = T))%>%
#   mutate(vaccinations_dose_1=sum(total_covid_vaccinated_1st_dose,na.rm = T))%>%
#   mutate(vaccinations_dose_2=sum(total_covid_vaccinated_2nd_dose,na.rm = T))%>%
#   rename(county=organisationunitname)%>%
#   select(county,total_vaccinated,vaccinations_dose_1,vaccinations_dose_2)%>%
#   distinct(county,.keep_all = T)%>%
#   mutate(county=str_sub(county,1,- 7))
# 
# data2a<- data2a%>% 
#   full_join(kenyapop)%>%
#   mutate(dose1=round(vaccinations_dose_1/total*100,1))%>%
#   mutate(dose2=round(vaccinations_dose_2/total*100,1))%>%
#   #mutate(booster=round(as.numeric(booster_doses)/total*100,1))%>%
#   dplyr::rename("County"="county", "Number of people partially vaccinated"="vaccinations_dose_1", "Number of people fully vaccinated"="vaccinations_dose_2")%>%
#   mutate(`Number of people partially vaccinated`=paste0(`Number of people partially vaccinated`, " (", dose1,"%)"))%>%
#   mutate(`Number of people fully vaccinated`=paste0(`Number of people fully vaccinated`, " (", dose2,"%)"))%>%
#   #mutate(`Number of people received booster`=paste0(`Number of people received booster`," (",booster,"%"))%>%
#   pivot_longer(cols=c("dose1", "dose2"), names_to="doses", values_to="prop")
# 
# counties1<- full_join(counties, data2a[data2a$doses%in%"dose1",], by=c("Name"="County"))%>%
#   mutate(`Number of people partially vaccinated`=ifelse(`Number of people partially vaccinated`%in%"NA (NA%)", "0 (0%)", `Number of people partially vaccinated`))%>%
#   mutate(`Number of people fully vaccinated`=ifelse(`Number of people fully vaccinated`%in%"NA (NA%)", "0 (0%)", `Number of people fully vaccinated`))%>%
#   mutate(`Number of people received booster`=ifelse(`Number of people received booster`%in%"NA (NA%)", "0 (0%)", `Number of people received booster`))%>%
#   mutate(`Population vaccinated per capita`=(`Total vaccinated` / `total`))%>%
#   mutate(type="Partially Vaccinated")
# 
# counties1a<- full_join(counties, data2a[data2a$doses%in%"dose2",], by=c("Name"="County"))%>%
#   mutate(`Number of people partially vaccinated`=ifelse(`Number of people partially vaccinated`%in%"NA (NA%)", "0 (0%)", `Number of people partially vaccinated`))%>%
#   mutate(`Number of people fully vaccinated`=ifelse(`Number of people fully vaccinated`%in%"NA (NA%)", "0 (0%)", `Number of people fully vaccinated`))%>%
#   mutate(`Number of people received booster`=ifelse(`Number of people received booster`%in%"NA (NA%)", "0 (0%)", `Number of people fully vaccinated`))%>%
#   mutate(`Population vaccinated per capita`=(`Total vaccinated` / `total`))%>%
#   mutate(type="Fully Vaccinated")
# 
# counties2<- rbind(counties1, counties1a)
# options(scipen = 1000)
# 
# p3a<-ggplot(counties1, aes(label=Name,fill=prop,   label1=`Number of people fully vaccinated`))+geom_sf(show.legend = TRUE)+theme_void()+facet_grid(.~type, )+scale_fill_gradient(low="white", high="#f03b20", breaks=seq(0,70,10), guide="legend")+labs(fill="Proportion of the population \n partially vaccinated")+theme(text=element_text(size=16))
# 
# p3b<-ggplot(counties1a, aes(label=Name,fill=prop,   label1=`Number of people fully vaccinated`))+geom_sf(show.legend = TRUE)+theme_void()+facet_grid(.~type, )+scale_fill_gradient(low="white", high="#f03b20", guide="legend", breaks=c(0.2, 1, 2,3,4,5,6,7,8))+labs(fill="Proportion of the population \n fully vaccinated (%)")+theme(text=element_text(size=16))
# 
# p3<-ggplot(counties2, aes(label=Name,fill=prop,   label1=`Number of people fully vaccinated`))+geom_sf(show.legend = TRUE)+theme_void()+facet_grid(.~type, )+scale_fill_gradient(low="white", high="#f03b20", breaks=seq(0,70,10), guide="legend")+labs(fill="Proportion of the population \n partially vaccinated")
# 
# p3b
```

Population vaccinated by group {data-navmenu="Vaccination status"}
============================================================


```{r}
today <- Sys.Date()

scrap_data1 <- covid_data%>%
  select(periodname,covid_vaccine_others_fully_vaccinated,covid_vaccine_security_officers_fully_vaccinated,covid_vaccine_teachers_fully_vaccinated,covid_vaccine_healthcare_workers_fully_vaccinated)%>%
  pivot_longer(cols=c("covid_vaccine_others_fully_vaccinated":"covid_vaccine_healthcare_workers_fully_vaccinated"), names_to="Group",values_to = "Vaccinations")%>%
  mutate(Group=recode(Group,"covid_vaccine_healthcare_workers_fully_vaccinated"="Health Workers","covid_vaccine_others_fully_vaccinated"="Others","covid_vaccine_security_officers_fully_vaccinated"="Security Officers","covid_vaccine_teachers_fully_vaccinated"="Teachers"))%>%
  filter(periodname>as.Date("2021-03-06"))%>%
  filter(periodname<today)%>%
  mutate(periodname=as.Date(periodname))%>%
  rename(Date=periodname)%>%
  mutate(Vaccinations=ifelse(is.na(Vaccinations), 0, Vaccinations))%>%
  group_by(Group)%>%
  mutate(cumulative=cumsum(Vaccinations))

library(scales)

options(scipen = 3)

plot_1<-ggplot(scrap_data1, aes(x=Date, y=cumulative, fill=Group))+geom_area()+theme_bw()+labs(x="Date", y="Cumulative number of people vaccinated", title="Population vaccinated by Group. Source of data: Kenya Health Information System", fill="Occupation")+scale_x_date(date_breaks="2 months", date_labels = "%m-%Y")+scale_y_continuous(labels = comma)+scale_fill_brewer(palette = "Set1")


plotly::ggplotly(plot_1)
```

Population vaccinated by target group {data-navmenu="Vaccination status"}
============================================================


```{r, fig.width=16, fig.height=10}
scrap_data1a<- scrap_data1%>%
  mutate(Date1=floor_date(Date, "month"))

library(scales)

options(scipen = 3)

scrap_data1a$target<- ifelse(scrap_data1a$Group%in%"Health Workers",208418, ifelse(scrap_data1a$Group%in%"Teachers", 330671,  ifelse(scrap_data1a$Group%in%"Security Officers",710911 ,(21792916*1.02252))))

plot_2<-ggplot(scrap_data1a[!is.infinite(scrap_data1a$Vaccinations),], aes(x=Date1, y=cumulative))+geom_col(position="dodge", fill="#3182bd")+
  geom_hline(aes(yintercept=target), linetype=2)+
  facet_wrap(.~Group, scales = "free")+theme_bw()+labs(x="Date", y="Cumulative number of people vaccinated", title="Population vaccinated by target group. Source of data: Kenya Health Information System", fill="Occupation")+scale_x_date(date_breaks="2 months", date_labels = "%m-%y")+scale_y_continuous(labels = comma)+
  scale_fill_brewer(palette = "Set1")+theme(text=element_text(size=14))

plot_2
```

Population vaccinated by gender {data-navmenu="Vaccination status"}
============================================================

```{r}
# scrap_data2<- openxlsx::read.xlsx("~/Dropbox/vaccine_data/vaccination_may 2021.xlsx","all vaccination data" )%>%
#   janitor::clean_names()%>%
#   filter(type%in%"gender")%>%
#   mutate(date=janitor::excel_numeric_to_date(date))%>%
#   arrange(date)%>%
#   select(date, t1, vaccinations_dose_1, vaccination_dose_2)%>%
#   mutate(t1=str_to_title(t1))%>%
#   pivot_longer(cols=contains("vaccination"), names_to="dose", values_to="vaccinations")%>%
#   mutate(dose=recode(dose, "vaccinations_dose_1"="Dose 1", "vaccination_dose_2"="Dose 2"))%>%
#   dplyr::rename("Date"="date", "Group"="t1", "Dose"="dose", "Vaccinations"="vaccinations")
#   
# scrap_data2 <- covid_data%>%
#   select(periodname,covid_19_total_ever_vaccinated_male,covid_19_total_ever_vaccinated_female)%>%
#   pivot_longer(cols=c("covid_19_total_ever_vaccinated_male":"covid_19_total_ever_vaccinated_female"), names_to="Gender",values_to = "Vaccinations")%>%
#   mutate(Gender=recode(Gender,"covid_19_total_ever_vaccinated_male"="Male","covid_19_total_ever_vaccinated_female"="Female"))%>%
#   filter(periodname>as.Date("2021-03-06"))%>%
#   filter(periodname<today)%>%
#   mutate(periodname=as.Date(periodname))%>%
#   rename(Date=periodname)%>%
#   mutate(Vaccinations=ifelse(is.na(Vaccinations), 0, Vaccinations))%>%
#   group_by(Gender)%>%
#   mutate(cumulative=cumsum(Vaccinations))
# 
# library(scales)
# options(scipen = 3)
# plot_2a<-ggplot(scrap_data2, aes(x=Date, y=cumulative, fill=Gender))+geom_area()+
#   #facet_grid(.~Dose, scales = "free_x")+
#   theme_bw()+labs(x="Date", y="Cumulative number of people vaccinated", title="Population vaccinated by Gender. Source of data: Kenya Health Information System", fill="Gender")+scale_x_date(date_breaks="1 month", date_labels = "%m-%Y")+scale_y_continuous(labels = comma)+scale_fill_brewer(palette = "Set1")
# 
# 
# plotly::ggplotly(plot_2a)
# ```
# 
# Population pyramid {data-navmenu="Vaccination status"}
# ============================================================
# 
# ```{r, echo=F,message=F, warning=F,fig.width=16, fig.height=10}
# 
# kenyapop<- read_csv("kenya_population.csv")%>%
#   janitor::clean_names()%>%
#   filter(county_filter%in%"County")%>%
#   mutate(county_subcounty=str_to_title(county_subcounty))%>%
#   mutate(ages=as.numeric(ages))%>%
#   filter(!is.na(ages))%>%
#   filter(ages<101)%>%
#   mutate(ages1= ifelse(ages>17, "Above 18", "Below 18 years"))%>%
#   select(ages, ages1, male, female)%>%
#   dplyr::group_by(ages, ages1)%>%
#   mutate(male=sum(male, na.rm=T))%>%
#   mutate(female=sum(female, na.rm=T))%>%
#   ungroup()%>%
#   distinct()%>%
#   pivot_longer(cols=c(male, female), names_to="gender", values_to="population")%>%
#   mutate(gender=str_to_title(gender))
# 
# options(scipen = 6)
# ggplot(data=kenyapop, aes(x=ages, y = ifelse(gender == "Male", -population, population), fill = gender))+ geom_col(stat = "identity") +
# coord_flip()+theme_bw()+scale_x_continuous(breaks = seq(0,101, by=5))+labs(fill="", x="Age", y="Number of people", caption="The population 18 years and above is 25,942,894 while that below 18 years is 22,416,292.")+scale_fill_brewer(palette="Set1")+scale_y_continuous(labels=scales::comma)+scale_y_continuous(labels = abs)+theme(text=element_text(size=16))
# ```
# 
# ```{r, include=F, eval=FALSE}
# #vaccination_wards<- vaccination_data1%>%
#   #mutate(residence=str_to_title(residence))
# 
# # vaccination_wards<- read_csv("vaccination_data_20211026.csv")%>%
# #   filter(va)
# wards<- st_read("wards_kenya.shp")%>%
#   mutate(NAME_3=str_to_title(NAME_3))%>%
#   group_by(NAME_3)%>%
#   mutate(pop=sum(DN,na.rm=T))%>%
#   ungroup()
# wardswards<- unique(wards$NAME_3)
# 
# vaccination_wards$residence1<- ifelse(jarowinkler(vaccination_wards$residence,wardswards )>0.9, wardswards,vaccination_wards$residence )
# 
# vaccination_wards<-vaccination_wards%>%
#   mutate(residence1=recode(residence1, "Huruma  - Nbi"="Huruma","Naromoru/Kiamathaga"="Naromoru Kiamathaga", "Gambato Bongwe"="Gombato Bongwe", "Shirungu-Mugai"="Shirugu-Mugai", "Kaptumo/Kaboi"="Kaptumo-Kaboi","Babandogo"="Baba Dogo",     "Kahawa/Sukari" ="Kahawa", "Embobut/Embulot"="Endo","Kahawa Wendani"="Kahawa West","Kivumbuni"="Kivumbini",  "Chemundu/Kapng'etunyi" ="Chemundu/Kapng'etuny", "Mitamboni"="Mitaboni","Tinderet" ="Tindiret", "Lelmoko/Ngechek"="Lelmokwo/Ngechek","Koyo/Ndurio"="Koyo-Ndurio","Wargudud"="Wargadud" ,"Mwangathia"="Mwanganthia","Nambale"="Nambale Township","Mwihoko" ="Mwiki",                  "Sarang'ombe"="Sarangombe","Manyatta B"="Manyatta 'B'","Shauri Moyo Kaloleni"="Shaurimoyo Kaloleni","Kima Kiu/Kalanzoni"="Kiima Kiu/Kalanzoni",
# "Kabouch North"="Kabuoch North","Kitutu Central"="Kitutu   Central","Bukhayo North/Walatsi"="Bukhayo North/Waltsi",    "Entonet/Lenkism"="Entonet/Lenkisim","Muhoroni Koru"="Muhoroni/Koru","Imbrikani/Eselelnkei"="Mbirikani/Eselenkei",      
# "Mutongoni"="Mutonguni","Saimoi/Kipsaraman"="Saimo/Kipsaraman",                  
# "Muvau/Kikumini"="Muvau/Kikuumini","Waseweta Ii"="Wasweta Ii","Nyanmosense/Komosoko"="Nyamosense/Komosoko","Dedan Kimathi"="Dedan Kimanthi", "Kwamutonga/Kithumula"="Kwa Mutonga/Kithumula", "Wei Wei"="Weiwei", "Ruguru-Ngandori"="Ruguru/Ngandori","Olposimoru"="Olpusimoru","Njukiine"="Njukiini","Kiteta-Kisau"="Kiteta/Kisau",     "Hellsgate"="Hells Gate",                         
# "Central Ward"="Central  Ward","Ingoste-Matiha"="Ingostse-Mathia","Segeroi/Barsombe"="Segero/Barsombe",          "Ewuaso Oo Nkidong'i"="Ewuaso Oonkidong'i","Porro"="Poro","Ilmotiook"="Ilmotiok","Ruiru/Rwawera"="Ruiri/Rwarera",      "Chiakagira"="Chiakariga","Marenyo-Shianda"="Marenyo - Shianda","Bukira Central/Ikerege"="Bukira Centrl/Ikerege",       
# "Njabani/Kiburu"="Njabini\\Kiburu","Kiritta"="Kiriita","Kinguchwa"="Kiguchwa",                 
# "Kabonyo/Kanyagwai"="Kabonyo/Kanyagwal",      "Maji Moto/Naroosura"="Majimoto/Naroosura",       
# "Soysambu/Mitua"="Soysambu/ Mitua","Makutano/Mwala"="Makutano/ Mwala",            "Borabu/Chitago"="Borabu / Chitago","Boikanga"="Boikang'a","Ndalu"="Ndalu/ Tabani","Garba Tulla"="Garbatulla"            ,"Kanziku"="Kanziko","Namboboto-Nambuku"="Namboboto Nambuku"         
# ,"Kapsimwotwo"="Kapsimotwo",              
# "Loglogo"="Logo Logo","Ronge"="Rong'e",  "Bobasi/Boitangare"="Bobasi Boitangare", "Angata Nayokie"="Angata Nanyokie","Bassi Bogetaorio"="Basi Bogetaorio","Elwak North"="Elwak South","Iichamus"="Ilchamus","Iikerin"="Ilkerin", "Kaksingiri West"="Kaksingri West", "Kiptuiya"="Kiptuya", "Labisgale"="Labasigale", "Lakezone"="Lake Zone", "Loiyamorok"="Loiyamorock", "Maalamin"="Maalimin","Mokerero"="Makerero", "Mutitu/Kaliku"="Mutito/Kaliku", "Pongwe/Kikokeni"="Pongwe/Kikoneni", "Ruma-Kaksingiri East"="Ruma-Kaksingri", "Sagala"="Sagalla","Shinoyi-Shikomari-Esumeiya"="Shinoyi-Shikomari-Esumeyia","Wang'chieng"="Wangchieng",
# "Ademasajide"="Adamasajide", "Gatongora"="Gitothua","kamera"="Bomorenda",
#                 
# "Bura(Mwatate)"="Bura", "Mackinon Road"="Mackinnon Road","Alungo Gof"="Alango Gof"               
#   ))%>%
#   dplyr::group_by(residence1)%>%
#   count()%>%
#   distinct()
# wards<- st_read("wards_kenya.shp")%>%
#   mutate(NAME_3=str_to_title(NAME_3))%>%
#   group_by(NAME_3)%>%
#   mutate(pop=sum(DN,na.rm=T))%>%
#   ungroup()%>%
#   left_join(vaccination_wards, by=c("NAME_3"="residence1"))%>%
#   mutate(perc=round((n/pop)*100))%>%
#   mutate(perc=ifelse(perc>60, sample(seq(40,60),1), perc))%>%
#   mutate(perc=ifelse(is.na(perc)| is.infinite(perc), 0, perc))
# 
# #population<- read_csv("kenya_population.csv")
# 
# 
# #plot1_wards<- ggplot(wards, aes(label=NAME_3))+geom_sf(aes(fill=perc), color=NA)+theme_bw()+scale_fill_continuous(type="viridis", breaks=c(seq(0,100,10)), labels=c("0","10","20", "30", "40", "50", "60", "70", "80", "90", "100"))+labs(x="", y="", fill="Number vaccinated")
# 
# #ggplot(wards, aes(label))

```