use "drkr52fl.dta", clear generate wgt = v005/1000000 gen bcg = inrange(h2,1,3) gen polio0 = inrange(h0,1,3) gen dpt = inrange(h3,1,3)+inrange(h5,1,3)+inrange(h7,1,3) gen polio = inrange(h4,1,3)+inrange(h6,1,3)+inrange(h8,1,3) gen pv = inrange(pv1,1,3)+inrange(pv2,1,3)+inrange(pv3,1,3) gen ms = inrange(h9,1,3) forvalues x = 1/3 { gen polio`x' = (polio>=`x') gen dpt`x' = (dpt>=`x') gen penta`x' = (pv>=`x') } gen vac = (bcg==1 & polio==3 & dpt==3 & ms==1) label var vac "Received all vaccinations" label define vac 1 "Yes" 0 "No", replace label values vac vac gen novac = (bcg==0 & polio==0 & dpt==0 & ms==0) label var novac "Received no vaccinations" label values novac vac gen age = v008-b3 svyset v021 [pw=wgt], strata(v024) svy:mean bcg dpt1 dpt2 dpt3 penta1 penta2 penta3 polio0 polio1 polio2 polio3 ms vac novac if b5 == 1 & inrange(age,18,29)