/* Please do not attempt to run this program without reading the accompanying documentation*/ version 8.0 set more off prog drop _all capture log close clear cd $log log using set_g$p.log, replace cd $tempdata /* File: pull g (income transfers).do Date: May 2012 Desc: Pull-file to create Set G Income Transfers Note: See acknowledgements and copyright notice in new_master.do. */ /* This program is to be run embedded within new_master.do. The programs below pull the variables necessary for Set A from the SIPP Longitudinal, Core, and Topical Modules and merge them into one dataset that is by person-month. Note that we delete any individual who appears in a Core or Topical Module file, but who is not on the Longitudinal file, as recommended by U.S. Census Bureau staff. For the 1990-1993 panels, in order to reshape the Longitudinal files by person-month, we need to do three separate steps. (1) Pull all Longitudinal vars that appear once per panel and create a dataset that is by . (2) Pull all Longitudinal vars that appear once per wave and create a dataset that is by . (3) Pull all Longitudinal vars that appear once per month and create a dataset that is by . Generate calendar month and wave from the month counter in this file. (The variable goes from 1 to 36 in the 1993 panel and thus must be converted into calendar months for merging.) Then, we merge the three files together into one person-month file, along with variables from the Core and Topical Module files. Note that there is an error in the 1993 panel whereby there are individuals in the longitudinal file that show up without data. These are deleted. */ * need to pull from each wave and merge capture program drop loop08 program define loop08 global gvarlist "$ids rot tage rcutyp01 rcutyp03 rcutyp08 rcutyp20 rcutyp21 rcutyp23 rcutyp24 rcutyp25 rcutyp27 er01a er01k er08 er20 er21 er23 er03a er03k er04 er24 er25 er27 er05 er06 epubhse egvtrnt tmthrnt ewrsect8 eutilyn eegyast eegyamt t01amta t01amtk t08amt t20amt t21amt t23amt er03* t24amt t25amt t27amt t05amt t06amt epaothr2 t03amta t03amtk t04amt" forvalues i=1/8 { if `i' == 1 use $gvarlist using $c`i', clear if `i' > 1 append using $c`i', keep($gvarlist) } sort id wave rot cd $tempdata save test, replace cd $rawdata use id wave rot ercvafdc using sipp08t1 cd $tempdata sort id wave rot merge id wave rot using test tab _merge drop _merge rename tage age rename rcutyp01 socseca_c rename rcutyp03 ssi_c rename rcutyp08 vets_c rename rcutyp20 tanf_c rename rcutyp21 genasst_c rename rcutyp23 fostkid_c rename rcutyp24 othwelf_c rename rcutyp25 wic_c rename rcutyp27 fs_c rename er05 stateui_r rename er06 supui_r rename er01a socseca_r rename er01k socseck_r rename er08 vets_r rename er20 tanf_r rename er21 genasst_r rename er23 fostkid_r rename er24 othwelf_r rename er25 wic_r rename er27 fs_r rename t01amta socseca_a rename t01amtk socseck_a rename t08amt vets_a rename t20amt tanf_a rename t21amt genasst_a rename t23amt fostkid_a rename t24amt othwelf_a rename t25amt wic_a rename t27amt fs_a rename t05amt stateui_a rename t06amt supui_a rename epubhse pubhou_r rename egvtrnt lowrent_r rename ewrsect8 sect8_r rename epaothr2 ccare_r rename eegyast enrgy_r rename tmthrnt rent_a rename eegyamt enrgy_a rename eutilyn utilpay_r rename er03a ssia_r rename er03k ssik_r rename t03amta ssia_a rename t03amtk ssik_a rename er04 statessi_r rename t04amt statessi_a compress sort id wave rot cd $tempdata save test, replace end capture program drop loop04 program define loop04 global gvarlist "$ids rot tage rcutyp01 rcutyp03 rcutyp08 rcutyp20 rcutyp21 rcutyp23 rcutyp24 rcutyp25 rcutyp27 er01a er01k er08 er20 er21 er23 er03a er03k er04 er24 er25 er27 er05 er06 epubhse egvtrnt tmthrnt ewrsect8 eutilyn eegyast eegyamt t01amta t01amtk t08amt t20amt t21amt t23amt er03* t24amt t25amt t27amt t05amt t06amt epaothr2 t03amta t03amtk t04amt" forvalues i=1/12 { if `i' == 1 use $gvarlist using $c`i', clear if `i' > 1 append using $c`i', keep($gvarlist) } sort id wave rot cd $tempdata save test, replace cd $rawdata use id wave rot ercvafdc using sipp04t1 cd $tempdata sort id wave rot merge id wave rot using test tab _merge drop _merge rename tage age rename rcutyp01 socseca_c rename rcutyp03 ssi_c rename rcutyp08 vets_c rename rcutyp20 tanf_c rename rcutyp21 genasst_c rename rcutyp23 fostkid_c rename rcutyp24 othwelf_c rename rcutyp25 wic_c rename rcutyp27 fs_c rename er05 stateui_r rename er06 supui_r rename er01a socseca_r rename er01k socseck_r rename er08 vets_r rename er20 tanf_r rename er21 genasst_r rename er23 fostkid_r rename er24 othwelf_r rename er25 wic_r rename er27 fs_r rename t01amta socseca_a rename t01amtk socseck_a rename t08amt vets_a rename t20amt tanf_a rename t21amt genasst_a rename t23amt fostkid_a rename t24amt othwelf_a rename t25amt wic_a rename t27amt fs_a rename t05amt stateui_a rename t06amt supui_a rename epubhse pubhou_r rename egvtrnt lowrent_r rename ewrsect8 sect8_r rename epaothr2 ccare_r rename eegyast enrgy_r rename tmthrnt rent_a rename eegyamt enrgy_a rename eutilyn utilpay_r rename er03a ssia_r rename er03k ssik_r rename t03amta ssia_a rename t03amtk ssik_a rename er04 statessi_r rename t04amt statessi_a compress sort id wave rot cd $tempdata save test, replace end capture program drop loop01 program define loop01 local i=1 use $ids rot tage rcutyp01 rcutyp03 rcutyp08 rcutyp20 rcutyp21 /* */ rcutyp23 rcutyp24 rcutyp25 rcutyp27/* */ er01a er01k er08 er20 er21 er23 er03a er03k er04/* */ er24 er25 er27 er05 er07 epubhse egvtrnt tmthrnt ewrsect8 eutilyn eegyast eegyamt/* */ t01amta t01amtk t08amt t20amt t21amt t23amt er03* /* */ t24amt t25amt t27amt t05amt t07amt epatyp5 t03amta t03amtk t04amt using $c`i', clear sort $ids save test, replace local i = `i'+1 while `i'>1 & `i'<10 { use $ids rot tage rcutyp01 rcutyp03 rcutyp08 rcutyp20 rcutyp21 /* */ rcutyp23 rcutyp24 rcutyp25 rcutyp27/* */ er01a er01k er08 er20 er21 er23 er03a er03k er04/* */ er24 er25 er27 er05 er07 epubhse egvtrnt tmthrnt ewrsect8 eutilyn eegyast eegyamt/* */ t01amta t01amtk t08amt t20amt t21amt t23amt /* */ t24amt t25amt t27amt t05amt t07amt epatyp5 t03amta t03amtk t04amt using $c`i', clear sort $ids append using test sort $ids save test, replace local i=`i'+1 } * Extract welfare history from topical module 1 sort id wave rot save test, replace cd $rawdata use id wave rot ercvafdc using sipp01t1 cd $tempdata sort id wave rot merge id wave rot using test tab _merge drop _merge rename tage age rename rcutyp01 socseca_c rename rcutyp03 ssi_c rename rcutyp08 vets_c rename rcutyp20 tanf_c rename rcutyp21 genasst_c rename rcutyp23 fostkid_c rename rcutyp24 othwelf_c rename rcutyp25 wic_c rename rcutyp27 fs_c rename er05 stateui_r rename er07 othui_r rename er01a socseca_r rename er01k socseck_r rename er08 vets_r rename er20 tanf_r rename er21 genasst_r rename er23 fostkid_r rename er24 othwelf_r rename er25 wic_r rename er27 fs_r rename t01amta socseca_a rename t01amtk socseck_a rename t08amt vets_a rename t20amt tanf_a rename t21amt genasst_a rename t23amt fostkid_a rename t24amt othwelf_a rename t25amt wic_a rename t27amt fs_a rename t05amt stateui_a *rename t06amt ccareui_a rename t07amt othui_a rename epubhse pubhou_r rename egvtrnt lowrent_r rename ewrsect8 sect8_r rename epatyp5 ccare_r rename eegyast enrgy_r rename tmthrnt rent_a rename eegyamt enrgy_a rename eutilyn utilpay_r rename er03a ssia_r rename er03k ssik_r rename t03amta ssia_a rename t03amtk ssik_a rename er04 statessi_r rename t04amt statessi_a sort id wave rot save test, replace end capture program drop loop96 program define loop96 local i=1 use $ids rot tage rcutyp01 rcutyp03 rcutyp08 rcutyp20 rcutyp21 /* */ rcutyp23 rcutyp24 rcutyp25 rcutyp27/* */ er01a er01k er08 er20 er21 er23 er03a er03k er04/* */ er24 er25 er27 er05 er07 epubhse egvtrnt tmthrnt ewrsect8 eutilyn eegyast eegyamt/* */ t01amta t01amtk t08amt t20amt t21amt t23amt /* */ t24amt t25amt t27amt t05amt t07amt epatyp5 t03amta t03amtk t04amt using $f`i', clear sort $ids save test, replace local i = `i'+1 while `i'>1 & `i'<13 { use $ids rot tage rcutyp01 rcutyp03 rcutyp08 rcutyp20 rcutyp21 /* */ rcutyp23 rcutyp24 rcutyp25 rcutyp27/* */ er01a er01k er08 er20 er21 er23 er03a er03k er04/* */ er24 er25 er27 er05 er07 epubhse egvtrnt tmthrnt ewrsect8 eutilyn eegyast eegyamt/* */ t01amta t01amtk t08amt t20amt t21amt t23amt /* */ t24amt t25amt t27amt t05amt t07amt epatyp5 t03amta t03amtk t04amt using $f`i', clear sort $ids append using test sort $ids save test, replace local i=`i'+1 } * Extract welfare history from topical module 1 sort id wave rot save test, replace cd $rawdata use id wave rot ercvafdc using sipp96t1 cd $tempdata sort id wave rot merge id wave rot using test tab _merge drop _merge rename tage age rename rcutyp01 socseca_c rename rcutyp03 ssi_c rename rcutyp08 vets_c rename rcutyp20 tanf_c rename rcutyp21 genasst_c rename rcutyp23 fostkid_c rename rcutyp24 othwelf_c rename rcutyp25 wic_c rename rcutyp27 fs_c rename er05 stateui_r rename er07 othui_r rename er01a socseca_r rename er01k socseck_r rename er08 vets_r rename er20 tanf_r rename er21 genasst_r rename er23 fostkid_r rename er24 othwelf_r rename er25 wic_r rename er27 fs_r rename t01amta socseca_a rename t01amtk socseck_a rename t08amt vets_a rename t20amt tanf_a rename t21amt genasst_a rename t23amt fostkid_a rename t24amt othwelf_a rename t25amt wic_a rename t27amt fs_a rename t05amt stateui_a *rename t06amt ccareui_a rename t07amt othui_a rename epubhse pubhou_r rename egvtrnt lowrent_r rename ewrsect8 sect8_r rename epatyp5 ccare_r rename eegyast enrgy_r rename tmthrnt rent_a rename eegyamt enrgy_a rename eutilyn utilpay_r rename er03a ssia_r rename er03k ssik_r rename t03amta ssia_a rename t03amtk ssik_a rename er04 statessi_r rename t04amt statessi_a sort id wave rot save test, replace end capture program drop loop93 program define loop93 * Longitudinal data: create two files 1) by id wave; 2) by id wave month * id cd $rawdata use id rot pubrnamt utlpayyn using sipp93l1, clear cd $tempdata sort id rot save testi, replace * id wave cd $rawdata use id rot engry_y* engryam* using sipp93l1, clear cd $tempdata renpfix engry_y enrgy_r renpfix engryam enrgy_a reshape long enrgy_r enrgy_a, i(id) j(wave) sort id wave save testw, replace *id month cd $rawdata use id rot age* pubhou* low_re* using sipp93l1, clear cd $tempdata sort id save test1, replace cd $rawdata use id rot soc_se* afdc_* gen_as* fost_k* oth_we* wiccov* foodst* using sipp93l2, clear cd $tempdata sort id save test2, replace cd $rawdata use id rot vets* using sipp93l3, clear cd $tempdata sort id save test3, replace merge id using test2 tab _merge drop _merge sort id merge id using test1 tab _merge drop _merge renpfix age_ age renpfix age0 age renpfix soc_se socseca_c renpfix socseca_c0 socseca_c renpfix vets_ vets_c renpfix vets_c0 vets_c renpfix afdc_ tanf_c renpfix tanf_c0 tanf_c renpfix gen_as genasst_c renpfix genasst_c0 genasst_c renpfix fost_k fostkid_c renpfix fostkid_c0 fostkid_c renpfix oth_we othwelf_c renpfix othwelf_c0 othwelf_c renpfix wiccov wic_c renpfix wic_c0 wic_c renpfix foodst fs_c renpfix fs_c0 fs_c renpfix pubhou pubhou_r renpfix pubhou_r0 pubhou_r renpfix low_re lowrent_r renpfix lowrent_r0 lowrent_r reshape long age socseca_c vets_c tanf_c genasst_c fostkid_c othwelf_c wic_c fs_c pubhou_r lowrent_r, i(id) j(mnth) cd $programs do monthwave93.do cd $tempdata count if id=="" drop if id=="" sort id wave month save testm, replace * Core data local i=1 cd $rawdata use $ids month ssicovrg r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval /* */ s05amt s06amt s07amt using sipp93w`i', clear cd $tempdata sort $ids id wave srefmon save test, replace local i=`i'+1 while `i'>=2 & `i'<10 { cd $rawdata use $ids month ssicovrg r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval s27amt /* */ s05amt s06amt s07amt using sipp93w`i', clear cd $tempdata sort $ids append using test sort $ids save test, replace local i=`i'+1 } sort id wave month * Merge individual, wavely, and monthly data from the longitudinal file with the core data. merge id wave month using testm tab _merge rename _merge m1tst sort id rot merge id rot using testi tab _merge rename _merge mtst sort id wave merge id wave using testw tab _merge rename _merge miw sort id wave rot save test, replace * Extract welfare history from topical module 1 cd $rawdata use id wave rot tm8078 using sipp93t1 cd $tempdata sort id wave rot merge id wave rot using test rename tm8078 ercvafdc * give uniform names, as necessary rename r01a socseca_r rename r01k socseck_r rename r03 ssi_r rename r08 vets_r rename r20 tanf_r rename r21 genasst_r rename r23 fostkid_r rename r24 othwelf_r rename r25 wic_r rename r27 fs_r rename r05 stateui_r rename r06 supui_r rename r07 othui_r rename s01amta socseca_a rename s01amtk socseck_a rename s03amt ssi_a rename s08amt vets_a rename s20amt tanf_a rename s21amt genasst_a rename s23amt fostkid_a rename s24amt othwelf_a rename wicval wic_a rename s27amt fs_a rename s05amt stateui_a rename s06amt supui_a rename s07amt othui_a rename pubrnamt rent_a rename utlpayyn utilpay_r rename ssicovrg ssi_c drop if m1tst~=3 drop *tst* miw compress sort id wave rot drop _merge save test, replace erase testm.dta end capture program drop loop92 program define loop92 * Longitudinal data: create two files 1) by id wave; 2) by id wave month * id cd $rawdata use id rot pubrnamt utlpayyn using sipp92l1, clear cd $tempdata sort id rot save testi, replace * id wave cd $rawdata use id rot engry_* engrya* using sipp92l1, clear cd $tempdata renpfix engry_ enrgy_r renpfix enrgy_r0 enrgy_r renpfix engrya enrgy_a renpfix enrgy_a0 enrgy_a reshape long enrgy_r enrgy_a, i(id) j(wave) sort id wave save testw, replace *id month cd $rawdata use id rot age* pubhou* low_re* using sipp92l1, clear cd $tempdata sort id save test1, replace * note: every variable below is from longitudinal 3, different from panel 93 and 91 cd $rawdata use id soc_se* afdc_* gen_as* fost_k* oth_we* wiccov* foodst* vets* using sipp92l3, clear cd $tempdata sort id merge id using test1 tab _merge drop _merge save tst1, replace renpfix age_ age renpfix age0 age renpfix soc_se socseca_c renpfix socseca_c0 socseca_c renpfix vets_ vets_c renpfix vets_c0 vets_c renpfix afdc_ tanf_c renpfix tanf_c0 tanf_c renpfix gen_as genasst_c renpfix genasst_c0 genasst_c renpfix fost_k fostkid_c renpfix fostkid_c0 fostkid_c renpfix oth_we othwelf_c renpfix othwelf_c0 othwelf_c renpfix wiccov wic_c renpfix wic_c0 wic_c renpfix foodst fs_c renpfix fs_c0 fs_c renpfix pubhou pubhou_r renpfix pubhou_r0 pubhou_r renpfix low_re lowrent_r renpfix lowrent_r0 lowrent_r reshape long age socseca_c vets_c tanf_c genasst_c fostkid_c othwelf_c wic_c fs_c pubhou_r lowrent_r, i(id) j(mnth) cd $programs do monthwave92.do cd $tempdata sort id wave month save testm, replace * Core data local i=1 cd $rawdata use $ids month ssicovrg r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval /* */ s05amt s06amt s07amt using sipp92w`i', clear cd $tempdata sort $ids id wave srefmon save test, replace local i=`i'+1 while `i'>=2 & `i'<10 { cd $rawdata use $ids month ssicovrg r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval s27amt /* */ s05amt s06amt s07amt using sipp92w`i', clear cd $tempdata sort $ids append using test sort $ids save test, replace local i=`i'+1 } sort id wave month merge id wave month using testm tab _merge rename _merge m1tst sort id rot merge id rot using testi tab _merge rename _merge mtst sort id wave merge id wave using testw tab _merge rename _merge miw sort id wave rot save test, replace cd $rawdata use id wave rot tm8078 using sipp92t1 cd $tempdata sort id wave rot merge id wave rot using test rename tm8078 ercvafdc * give uniform names, as necessary rename r01a socseca_r rename r01k socseck_r rename r03 ssi_r rename r08 vets_r rename r20 tanf_r rename r21 genasst_r rename r23 fostkid_r rename r24 othwelf_r rename r25 wic_r rename r27 fs_r rename r05 stateui_r rename r06 supui_r rename r07 othui_r rename s01amta socseca_a rename s01amtk socseck_a rename s03amt ssi_a rename s08amt vets_a rename s20amt tanf_a rename s21amt genasst_a rename s23amt fostkid_a rename s24amt othwelf_a rename wicval wic_a rename s27amt fs_a rename s05amt stateui_a rename s06amt supui_a rename s07amt othui_a rename pubrnamt rent_a rename utlpayyn utilpay_r rename ssicovrg ssi_c drop if m1tst~=3 drop m1tst compress save test, replace erase testm.dta drop mtst drop miw compress sort id wave rot drop _merge save test, replace end capture program drop loop91 program define loop91 * Longitudinal data: create two files 1) by id wave; 2) by id wave month * id cd $rawdata use id rot pubrnamt utlpayyn using sipp91l1, clear cd $tempdata sort id rot save testi, replace * id wave cd $rawdata use id rot engry_y* engryam* using sipp91l1, clear cd $tempdata renpfix engry_y enrgy_r renpfix engryam enrgy_a reshape long enrgy_r enrgy_a, i(id) j(wave) sort id wave save testw, replace *id month cd $rawdata use id rot age* pubhou* low_re* using sipp91l1, clear cd $tempdata sort id save test1, replace cd $rawdata use id afdc_* gen_as* fost_k* oth_we* wiccov* foodst* using sipp91l2, clear cd $tempdata sort id merge id using test1 tab _merge drop _merge sort id save test2, replace cd $rawdata use id soc_se* vets* using sipp91l3, clear cd $tempdata sort id merge using test2 tab _merge drop _merge sort id save tst1, replace renpfix age_ age renpfix age0 age renpfix soc_se socseca_c renpfix socseca_c0 socseca_c renpfix vets_ vets_c renpfix vets_c0 vets_c renpfix afdc_ tanf_c renpfix tanf_c0 tanf_c renpfix gen_as genasst_c renpfix genasst_c0 genasst_c renpfix fost_k fostkid_c renpfix fostkid_c0 fostkid_c renpfix oth_we othwelf_c renpfix othwelf_c0 othwelf_c renpfix wiccov wic_c renpfix wic_c0 wic_c renpfix foodst fs_c renpfix fs_c0 fs_c renpfix pubhou pubhou_r renpfix pubhou_r0 pubhou_r renpfix low_re lowrent_r renpfix lowrent_r0 lowrent_r reshape long age socseca_c vets_c tanf_c genasst_c fostkid_c othwelf_c wic_c fs_c pubhou_r lowrent_r, i(id) j(mnth) cd $programs do monthwave91.do cd $tempdata sort id wave month save testm, replace * Core data local i=1 use $ids month r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval /* */ s05amt s06amt s07amt using f:\_files\data\sipp\sipp91\sipp91w`i', clear sort $ids id wave srefmon save test, replace local i=`i'+1 while `i'>=2 & `i'<9 { cd $rawdata use $ids month r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval s27amt /* */ s05amt s06amt s07amt using sipp91w`i', clear cd $tempdata sort $ids append using test sort $ids save test, replace local i=`i'+1 } sort id wave month merge id wave month using testm tab _merge rename _merge m1tst sort id rot merge id rot using testi tab _merge rename _merge mtst sort id wave merge id wave using testw tab _merge rename _merge miw sort id wave rot save test, replace *Note:for 1991 panel, tm8078 is in topical module 2 instead of 1 as in panel 92 and 93 cd $rawdata use id wave rot tm8078 using sipp91t2 cd $tempdata sort id wave rot merge id wave rot using test rename tm8078 ercvafdc * give uniform names, as necessary rename r01a socseca_r rename r01k socseck_r rename r03 ssi_r rename r08 vets_r rename r20 tanf_r rename r21 genasst_r rename r23 fostkid_r rename r24 othwelf_r rename r25 wic_r rename r27 fs_r rename r05 stateui_r rename r06 supui_r rename r07 othui_r rename s01amta socseca_a rename s01amtk socseck_a rename s03amt ssi_a rename s08amt vets_a rename s20amt tanf_a rename s21amt genasst_a rename s23amt fostkid_a rename s24amt othwelf_a rename wicval wic_a rename s27amt fs_a rename s05amt stateui_a rename s06amt supui_a rename s07amt othui_a rename pubrnamt rent_a rename utlpayyn utilpay_r drop if m1tst~=3 drop m1tst compress save test, replace erase testm.dta drop mtst drop miw compress sort id wave rot drop _merge save test, replace end capture program drop loop90 program define loop90 * Longitudinal data: create two files 1) by id wave; 2) by id wave month * id cd $rawdata use id rot pubrnamt utlpayyn using sipp90l1, clear cd $tempdata sort id rot save testi, replace * id wave cd $rawdata use id rot engry_y* engryam* using sipp90l1, clear cd $tempdata renpfix engry_y enrgy_r renpfix engryam enrgy_a reshape long enrgy_r enrgy_a, i(id) j(wave) sort id wave save testw, replace *id month cd $rawdata use id rot age* pubhou* low_re* using sipp90l1, clear cd $tempdata sort id save test1, replace *Note: soc_se* and vets* should be in longitudinal 2 for 90 panel instead of longitudinal 3 in other panels cd $rawdata use id afdc_* gen_as* soc_se* vets* fost_k* oth_we* wiccov* foodst* using sipp90l2, clear cd $tempdata sort id merge using test1 tab _merge drop _merge sort id save tst1, replace renpfix age_ age renpfix age0 age renpfix soc_se socseca_c renpfix socseca_c0 socseca_c renpfix vets_ vets_c renpfix vets_c0 vets_c renpfix afdc_ tanf_c renpfix tanf_c0 tanf_c renpfix gen_as genasst_c renpfix genasst_c0 genasst_c renpfix fost_k fostkid_c renpfix fostkid_c0 fostkid_c renpfix oth_we othwelf_c renpfix othwelf_c0 othwelf_c renpfix wiccov wic_c renpfix wic_c0 wic_c renpfix foodst fs_c renpfix fs_c0 fs_c renpfix pubhou pubhou_r renpfix pubhou_r0 pubhou_r renpfix low_re lowrent_r renpfix lowrent_r0 lowrent_r reshape long age socseca_c vets_c tanf_c genasst_c fostkid_c othwelf_c wic_c fs_c pubhou_r lowrent_r, i(id) j(mnth) cd $programs do monthwave90.do cd $tempdata sort id wave month save testm, replace * Core data local i=1 cd $rawdata use $ids month r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval /* */ s05amt s06amt s07amt using sipp90w`i', clear cd $tempdata sort $ids id wave srefmon save test, replace local i=`i'+1 while `i'>=2 & `i'<9 { cd $rawdata use $ids month r01a r01k /* */ r03 r08 r20 r21 r23 r24 r25 r27 r05 r06 r07 s01amta s01amtk /* */ s03amt s08amt s20amt s21amt s23amt s24amt wicval s27amt /* */ s05amt s06amt s07amt using sipp90w`i', clear cd $tempdata sort $ids append using test sort $ids save test, replace local i=`i'+1 } sort id wave month merge id wave month using testm tab _merge rename _merge m1tst sort id rot merge id rot using testi tab _merge rename _merge mtst sort id wave merge id wave using testw tab _merge rename _merge miw sort id wave rot save test, replace *Note:for 1990 panel, tm8078 is in topical module 2 instead of 1 as in panel 92 and 93 cd $rawdata use id wave rot tm8078 using sipp90t2 cd $tempdata sort id wave rot merge id wave rot using test rename tm8078 ercvafdc * give uniform names, as necessary rename r01a socseca_r rename r01k socseck_r rename r03 ssi_r rename r08 vets_r rename r20 tanf_r rename r21 genasst_r rename r23 fostkid_r rename r24 othwelf_r rename r25 wic_r rename r27 fs_r rename r05 stateui_r rename r06 supui_r rename r07 othui_r rename s01amta socseca_a rename s01amtk socseck_a rename s03amt ssi_a rename s08amt vets_a rename s20amt tanf_a rename s21amt genasst_a rename s23amt fostkid_a rename s24amt othwelf_a rename wicval wic_a rename s27amt fs_a rename s05amt stateui_a rename s06amt supui_a rename s07amt othui_a rename pubrnamt rent_a rename utlpayyn utilpay_r drop if m1tst~=3 drop m1tst compress save test, replace erase testm.dta *drop tst1 drop mtst drop miw compress drop _merge sort id wave rot save test, replace end loop$p