Following is a response from Senior DHS Stata Specialist, Tom Pullum:
Data on immunizations/vaccinations is only collected for children who are alive at the time of the survey, that is, children with b5=1. If the child has not survived, that is, if b5=0, then all the data on immunizations/vaccinations is coded ".", which means "Not applicable".
If you enter "describe pn1" you will see that PN1 is the name of the label for pn1. (Usually the name of the label is the same as the name of the variable, except that the label may have upper case letters.) Then enter "label list PN1". This will give you the numeric codes and the complete labels for each code. It can be very helpful to list the label because often the label is incomplete in a "tab" command.
. label list PN1
PN1:
0 no
1 vaccination date on card
2 reported by mother
3 vaccination marked on card
8 don't know
All of the immunizations (for example h0, h2 ,..., h9, pn2, pn3) have this same label (repeated as H0, H2, etc.).
When I open the KR file for this survey and enter "tab pn1" I get all the codes, not just "no" and "yes". You must have done a recode. When you recode a variable you should always change the name of the variable so you do not overwrite the original. For this variable there are 80 cases with code 8, which means "don't know".
I recommend that you be very cautious with the term "missing". For this variable, for example, "." means "not applicable" and 8 means "don't know". There are not really any "missing" cases at all.
Finally, I would emphasize that if you plan to analyze the data you should use weights: "tab pn1 [iweight=v005/1000000]" (or you could use svyset and svy).