The DHS Program User Forum
Discussions regarding The DHS Program data and results
Home » Countries » Nepal » pregnancy interval in months variable
Re: pregnancy interval in months variable [message #15657 is a reply to message #15652] Mon, 27 August 2018 22:40 Go to previous messageGo to previous message
Sami is currently offline  Sami
Messages: 27
Registered: May 2016
Location: Nepal
Dear Expert,

Thank you for your response. As suggested previously, i have used following code, but i have not been able to compute pregnancy interval in months. Can you please advise any variables/code i can use to compute pregnancy interval in months?

The code i have used is as follow:

* Using Nepal DHS 2011
use "C:\Data\DHS_Stata\NPIR60FL.DTA" , clear
gen pregs = 0

forvalues i = 1/80 {
gen cmc`i' = v017 + 80 - `i'
gen event`i' = substr(vcal_1, `i', 1)
gen type`i' = .
replace type`i' = 1 if substr(vcal_1,`i',1) == "B"
replace type`i' = 3 if substr(vcal_1,`i',1) == "T"
replace type`i' = 2 if substr(vcal_1,`i',7) == "TPPPPPP"
replace pregs = pregs+1 if (substr(vcal_1,`i',1) == "B" | substr(vcal_1,`i',1) == "T")
* Drop cases with no pregnancies
drop if pregs == 0

* Decide what variables you want to keep first before the reshape, modify this list as you need to add extra variables.
keep caseid v001 v002 v003 v005 v008 v011 v013 v017 v018 v019 v021 v022 v023 cmc* event* type*

* The reshape is really really really slow if you don't select variables and cases first, and will most likely fail otherwise.
reshape long cmc event type, i(caseid) j(ix)

lab def type 1 "Birth" 2 "Stillbirth" 3 "Miscarriage/abortion"
lab val type type
lab var type "Type of pregnancy"
lab var cmc "Century month code of event"
lab var event "Calendar event code"

* Set length of calendar to use
gen callen = v018 + 59
* If calendar is aligned right (as in original dataset), use the following:
gen beg = v018
gen end = callen
* If calendar is aligned left (as it is in some datasets), use the following:
*gen beg = 1
*gen end = 60

* Include only the five year period
keep if ix >= beg & ix <= end

* check the pregnancy types
tab type [iw=v005/1000000]

* Note that this will not match the 5444 pregnancies of 7+ months as that includes twins.
* This file excludes twins, but i believe that is what you really need.

* keep only births and stillbirths
keep if type == 1 | type == 2

***********add the twins***************
* sort by case identifiers and century month code of pregnancy end
sort v001 v002 v003 cmc
* save this file
save "pregnancies of 7 months or more.dta"

* Open birth history
use "C:\Data\DHS_Stata\NPBR60FL.DTA", clear
* Sort according to ID and CMC of birth
clonevar cmc = b3
sort v001 v002 v003 cmc
save "births.dta"

* Reopen the pregnancies files and merge in the twins
use "pregnancies of 7 months or more.dta",clear
merge 1:m v001 v002 v003 cmc using "births.dta", keep(master match) keepusing(b*)

tab type [iw=v005/1000000]

Thank you so much

Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Breastfeeding
Next Topic: Seeking treatment for ARI at Health Facility- NDHS 2011 and 2016
Goto Forum:

Current Time: Fri Mar 1 15:06:31 Coordinated Universal Time 2024