Skip to content

Instantly share code, notes, and snippets.

@studentrohman
Last active October 17, 2021 02:45
Show Gist options
  • Select an option

  • Save studentrohman/dd0c2db5190eafcfb6e49d6701503a9a to your computer and use it in GitHub Desktop.

Select an option

Save studentrohman/dd0c2db5190eafcfb6e49d6701503a9a to your computer and use it in GitHub Desktop.
*----------------------------------------------------------------------------------------------------------
*Membuat Variabel spesial
*----------------------------------------------------------------------------------------------------------
global input "E:\IFLS\DATA\2014\HH"
global output "C:\Users\Asus\OneDrive\Desktop\kelas ifls\2. hasil"
cd "$output"
dir "$input\*"
use "$input\bk_ar1.dta", clear
*size family
gen inhh=(ar01a==1 | ar01a==2 | ar01a==5 | ar01a==11)
keep if inhh==1
keep if ar01i==1
gen member=1
bys hhid14: egen size_family=sum(member)
*Education Year
sort hhid14_9 pid14
*level= pendidikan tertinggi, grade= kelas tertinggi
gen level=ar16 if ar16~=.
gen grade=ar17 if ar17~=.
* no schooling, kindergarten *
generate educyr= 0 if level==1 | level==90 | level==98 | level==95
* elementary school, kejar paket A, pesantren, madrasah tsanawiyah *
replace educyr=grade if (level==2 | level==11 | level==14 | level==72) & grade<7 /* masih SD */
replace educyr=6 if (level==2 | level==11 | level==14 | level==72) & grade==7 /* graduated from SD*/
replace educyr=5 if (level==2 | level==11 | level==14 | level==72) & grade>7 /* not graduated */
* junior high general + vocational, kejar paket B, ibtidaiyah *
replace educyr=6+grade if (level==3 | level==4 | level==12 | level==17 | level==73) & grade<4 /* masih SMP */
replace educyr=9 if (level==3 | level==4 | level==12 | level==17 | level==73) & (grade==4 | grade==5 | grade==7) /* graduated from SMP */
replace educyr=8 if (level==3 | level==4 | level==12 | level==17 | level==73) & grade>7 /* not graduated */
* senior high general + vocational, kejar paket B, aaliyah *
replace educyr=9+grade if (level==5 | level==6 | level==15 | level==74) & grade<4 /* masih SMA */
replace educyr=12 if (level==5 | level==6 | level==15 | level==74) & (grade==4 | grade==7) /* graduated */
replace educyr=11 if (level==5 | level==6 | level==15 | level==74) & grade==98 /* not graduated */
* tertiary educ *
replace educyr=12+grade if (level==13 | level==60 | level==61 | level==62 | level==63) & grade<5
replace educyr=16 if (level==13 | level==60 | level==61 | level==62 | level==63) & (grade==5 | grade==6 | grade==7)
replace educyr=15 if (level==13 | level==60 | level==61 | level==62 | level==63) & grade>7
replace educyr=16+grade if (level==62) & grade<3
replace educyr=18 if (level==62) & (grade==3 | grade==4 | grade==5 | grade==7)
replace educyr=17 if (level==62) & (grade>7)
replace educyr=18+grade if (level==63) & grade<3
replace educyr=20 if (level==63) & (grade==3 | grade==4 | grade==5 | grade==7)
replace educyr=19 if (level==63) & (grade>7)
* College, D1, D2, D3 educ *
replace educyr=12+grade if (level==60) & grade<=3 /* belum lulus kuliah college*/
replace educyr=15 if (level==60) & grade>3 & grade<7 /* belum lulus kuliah college*/
* Univ (bachelor) educ *
replace educyr=12+grade if (level==13 | level==61) & grade<=5 /* belum lulus kuliah college*/
replace educyr=17 if (level==13 | level==61) & grade>5 & grade<=7 /* belum lulus kuliah college*/
* Univ (master) educ *
replace educyr=17+grade if (level==13 | level==62) & grade<=2 /* belum lulus kuliah college*/
replace educyr=19 if (level==13 | level==62) & grade>2 & grade<=7 /* belum lulus kuliah college*/
* Univ (doctorate) educ *
replace educyr=19+grade if (level==13 | level==61) & grade<=3 /* belum lulus kuliah college*/
replace educyr=22 if (level==13 | level==61) & grade>3 & grade<=7 /* belum lulus kuliah college*/
***Memberi Label Variabel yang baru***
label variable level "tingkat pendidikan terakhir"
label variable grade "kelas pendidikan terakhir"
label variable educyr "education year atau lama tahun bersekolah"
*----------------------------------------------------------------------------------------------------------------------------------
*Membuat Variabel Stunting
*----------------------------------------------------------------------------------------------------------------------------------
use "$input\bk_time.dta", clear
reshape wide ivwdaybk ivwmthbk ivwyrbk beghr begmin endhr endmin, i(hhid14) j( time_occ)
egen year_wawancara=rowmax( ivwyrbk1 ivwyrbk2 ivwyrbk3 ivwyrbk4 ivwyrbk5 ivwyrbk6 ivwyrbk7 ivwyrbk8 ivwyrbk9 ivwyrbk10 ivwyrbk11 ivwyrbk12 ivwyrbk13 ivwyrbk14 ivwyrbk21)
egen bulan_wawancara=rowmax( ivwmthbk1 ivwmthbk2 ivwmthbk3 ivwmthbk4 ivwmthbk5 ivwmthbk6 ivwmthbk7 ivwmthbk8 ivwmthbk9 ivwmthbk10 ivwmthbk11 ivwmthbk12 ivwmthbk13 ivwmthbk14 ivwmthbk21 )
keep year_wawancara bulan_wawancara hhid14
tempfile bk_time
save `bk_time', replace
use "$input\bk_ar1.dta", clear
merge m:1 hhid14 using `bk_time'
drop if _m==2
drop _m
*variabel yg dibutuhkan untuk membuat agemonth dan gender
*ivwmthbk, ivwyrbk, ar08yr, ar08mth, ar07
*Variabel agemonth
gen agemonth = ((year_wawancara-ar08yr)*12)+(bulan_wawancara-ar08mth)
drop if agemonth < 0
drop if agemonth > 60
*Variabel Gender
recode ar07 (1=1 "Laki2") (3=0 "perempuan"), gen(gender)
keep pid* hhid* gender agemonth
save "$output\genderdanagemonth.dta", replace
***************************************
*Variabel Tinggi badan
clear
use "$input\bus_us.dta"
ren us04 heightanak
keep hhid* pid* heightanak
save "$output\tinggianak.dta", replace
**************************************
*Variabel Stunting
use "$output\genderdanagemonth.dta", clear
merge 1:1 hhid14 pid14 using "$output\tinggianak.dta"
keep if _m==3
egen zha14 = zanthro(heightanak,ha,WHO), xvar( agemonth ) gender( gender ) gencode(male=1, female=0) ageunit(month)
gen stunting = 0
replace stunting = 1 if zha14 < -2
save "$output\hasilstunting.dta"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment