Project

General

Profile

Support #1994 ยป question.do

Omer Sarigul, 11/17/2023 08:24 AM

 
* Keeping the necessary vars in the child data for merging

// CHILD

foreach w in a b c d e f g h i j k l {
// Open the individual level file

use "${ukhls}/`w'_child", clear

// Keep only the variables that exist in the current dataset

keep pidp pid `w'_hidp `w'_pno `w'_childpno `w'_hgbiom `w'_hgbiof

// Save one file for each wave
save "${tempdata}/`w'_child", replace
}

* Then, I keep the necessary variables in the a_natchild data by dropping the duplicates before merging with the child to create a new data that includes birthweight measures for children

// NATCHILD

use "${ukhls}\a_natchild", clear

* In the natchild data, we have pidp, `w'_hidp, `w'_pno, `a'_childno

keep pidp a_hidp a_pno a_childno a_lchlv a_lchyd4 a_lchno a_bwtxp a_bwtel a_bwtwk a_bwt a_bwtlb a_bwtoz a_bwtk a_bwtg5 a_brfed a_brfedend a_brfedend2

*isid pidp // I know that isid pidp does not work as the data does not uniquely identify and stands for

* Hence I first tried to keep those with the birthweight information

drop if a_bwtlb < 0

drop if a_bwtoz < 0

* Then tried to keep those with the childpno

keep if a_lchno > 0

* Or tried to drop duplicates

duplicates report pidp

duplicates drop pidp, force

save "${tempdata}/a_natchild", replace

* I tried to merge it using the method suggested for the child-newborn match, SEE BELOW

use "${tempdata}/a_child", clear

sort a_hidp a_pno

merge 1:m a_hidp a_pno using "${tempdata}/a_natchild"

// NEWBORN

foreach w in b c d e f g h i j k l {
// Open the individual level file
use "${ukhls}/`w'_newborn", clear
// Keep only the variables that exist in the current dataset
keep pidp `w'_hidp `w'_pno `w'_newchno `w'_lchlv `w'_lchyd4 `w'_lchsx `w'_lchby4 `w'_lchal `w'_lchno `w'_bwtxp `w'_bwtel `w'_bwtwk `w'_bwt `w'_bwtlb `w'_bwtoz `w'_bwtk `w'_bwtg5 `w'_brfed `w'_brfedend `w'_brfedend2
duplicates drop pidp, force
// Save one file for each wave
save "${tempdata}/`w'_newborn", replace
}

* Now, merging the child data with newborn in a loop

foreach w in b c d e f g h i j k l {
use "${ukhls}/`w'_child", clear

sort `w'_hidp `w'_pno
merge 1:m `w'_hidp `w'_pno using "${tempdata}/`w'_newborn"
rename _merge mergechildnewborn
// Save one file for each wave
save "${tempdata}/`w'_child", replace
}

log close
    (1-1/1)