**Do-File to clean the EGOALT BHPS data version 15.1 clear all set more off cap log close cd "D:\Mario files\box\PhD Health Research\Effects of parental unemployment on children health\Data Analysis" global main_data "D:\Mario files\box\PhD Health Research\Effects of parental unemployment on children health\Datasets\Understanding Societies (UKHLS)\UKDA-6614-stata\stata\stata13_se" global dataout "D:\Mario files\box\PhD Health Research\Effects of parental unemployment on children health\Data Analysis" global results "D:\Mario files\box\PhD Health Research\Effects of parental unemployment on children health\(Preliminary) Results" global graphs "" global tables "" global W "a b c d e f g h i j k l m n o p q r" // List af all waves global N " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18" global nW : word count $W // Number of elements in the list above (In our case, number of waves) set scheme s1mono // Scheme for graphs (black and white graphs)!! clear all capture log close ******************************************************************************** * Creating the dataset: * ******************************************************************************** * Creating child id, plus their age and sex variables across 18 Waves. foreach w in $W { // Foreach wave, I keep the dataset I need local n=strpos("abcdefghijklmnopqr", "`w'") // Creates a correspondence between letter and number di `n' use "$main_data/bhps_w`n'/b`w'_egoalt.dta", clear rename b`w'_* * // Removes the prefix of the variable gen wave = `n' lab var wave "wave" save "$dataout\egoaltSmall`n'", replace } foreach w in $W { // Foreach wave, I keep the dataset I need local n=strpos("abcdefghijklmnopqr", "`w'") // Creates a correspondence between letter and number di `n' use "$main_data/bhps_w`n'/b`w'_indall.dta", clear rename b`w'_* * // Removes the prefix of the variable gen wave = `n' rename age age_indall lab var wave "wave" save "$dataout\indallSmall`n'", replace } forvalues i=1/18 { use "$dataout\egoaltSmall`i'", clear keep if relationship_bh>=9 & relationship_bh<=12 count keep pidp apidp relationship_bh esex asex rename pidp xpidp // xpidp: ego identifier who are parents of these children rename apidp pidp //pidp: this now are actually the id of children merge m:1 pidp using "$dataout\indallSmall`i'.dta", keepusing(pidp age_indall wave birthy) drop if _m==2 drop _m rename pidp kpidp label var kpidp "cross-wave identifier of child" rename age_indall kage label var kage "child's age" rename asex ksex lab var ksex "child's sex" rename xpidp pidp rename relationship_bh krelationship_bh label var krelationship_bh "Relationship of ego with the children" rename birthy kbirthy lab var kbirthy "child's year of birth" bys pidp (kage): g k_id=_n save "$dataout\childrenSmall`i'", replace } use "$dataout\childrenSmall1", clear // I append all these small datasets forvalues n=2/$nW { append using "$dataout\childrenSmall`n'" } // Compress the data to save space describe sort pidp wave compress // recode values from -1 to -9 to Stata system missing for all variables quietly mvdecode _all, mv(-9/-1) //Save data for use: save "$dataout\childrenPanelSmall", replace ******************************************************* // Create mother and father id: forvalues i=1/18 { use "$dataout\egoaltSmall`i'", clear keep pidp apidp relationship_bh esex asex g long mnpid_bh=apidp if relationship_bh>=4 & relationship_bh<=7 & asex==2 g long fnpid_bh=apidp if relationship_bh>=4 & relationship_bh<=7 & asex==1 g long grandmother_pidp=apidp if relationship_bh==20 & asex==2 g long grandfather_pidp=apidp if relationship_bh==20 & asex==1 label var mnpid_bh "cross-wave identifier of mother" label var fnpid_bh "cross-wave identifier of father" label var grandmother_pidp "cross-wave identifier of grandmother" label var grandfather_pidp "cross-wave identifier of grandfather" gen wave = `i' label var wave "wave" save "$dataout\parentSmall`i'", replace } use "$dataout\parentSmall1", clear // I append all these small datasets forvalues n=2/$nW { append using "$dataout\parentSmall`n'" } // Compress the data to save space describe sort pidp wave compress // recode values from -1 to -9 to Stata system missing for all variables quietly mvdecode _all, mv(-9/-1) //Save data for use: save "$dataout\parentPanelSmall", replace **** MERGE CHILD, PARENT AND EGOALT DATASETS use "$dataout\egoaltPanelSmallVar", clear //merge parents id file: merge m:m pidp using "$dataout\parentPanelSmall" drop _m // Merge children id file: merge m:m pidp using "$dataout\childrenPanelSmall" drop _m * Year gen year= 1991 if wave==1 replace year= 1992 if wave==2 replace year= 1993 if wave==3 replace year= 1994 if wave==4 replace year= 1995 if wave==5 replace year= 1996 if wave==6 replace year= 1997 if wave==7 replace year= 1998 if wave==8 replace year= 1999 if wave==9 replace year= 2000 if wave==10 replace year= 2001 if wave==11 replace year= 2002 if wave==12 replace year= 2003 if wave==13 replace year= 2004 if wave==14 replace year= 2005 if wave==15 replace year= 2006 if wave==16 replace year= 2007 if wave==17 replace year= 2008 if wave==18 fre year //Save data for use: sa "$dataout\egoaltPanelSmallVarID", replace **** PREPARE DE DATA TO CREATE PARENTS VARIABLES: //Save data for use: sa "$dataout\egoaltPanelSmallVarID", replace // Create a dta for each wave: forvalues i=1/18 { use "$dataout\egoaltPanelSmallVarID", clear keep if wave==`i' sa "$dataout\egoaltPanelSmallVarID`i'", replace } // Trying with just this dataset, i.e. without creating children id (kpidp) forvalues i=1/18 { use "$dataout\parentPanelSmall", clear keep if wave==`i' sa "$dataout\parentPanelSmall`i'", replace } // Trying with just this dataset, i.e. without creating children id (kpidp) forvalues i=1/18 { use "$dataout\childrenPanelSmall", clear keep if wave==`i' sa "$dataout\childrenPanelSmall`i'", replace } //Drop unuseful datasets: foreach n in $N { erase "$dataout\egoaltSmall`n'.dta" } foreach n in $N { erase "$dataout\indallSmall`n'.dta" } foreach n in $N { erase "$dataout\childrenSmall`n'.dta" } foreach n in $N { erase "$dataout\parentSmall`n'.dta" } erase parentPanelSmall.dta erase childrenPanelSmall.dta