***MERGING*** ***file path*** global hfcsdata="\\int.wsr.at\Nabu\restriktive_Daten\EZB\HFCS\net_wealth_tax_JBNSt\Daten\HFCS_UDB_3_2_STATA" global hfcsdofile="\\int.wsr.at\Nabu\restriktive_Daten\EZB\HFCS\net_wealth_tax_JBNSt\Daten\HFCS_UDB_3_2_STATA" *renaming downloaded files and renaming variables in dwonloaded files in order to make them compatible with OENB merging codes* forvalues i=1(1)5 { use "$hfcsdata\d`i'.dta" rename *, lower save "$hfcsdata\D`i'.dta", replace } forvalues i=1(1)5 { use "$hfcsdata\h`i'.dta" rename *, lower save "$hfcsdata\H`i'.dta", replace } forvalues i=1(1)5 { use "$hfcsdata\hn`i'.dta" rename *, lower save "$hfcsdataHN`i'.dta", replace } forvalues i=1(1)5 { use "$hfcsdata\p`i'.dta" rename *, lower save "$hfcsdata\P`i'.dta", replace } forvalues i=1(1)5 { use "$hfcsdata\pn`i'.dta" rename *, lower save "$hfcsdata\PN`i'.dta", replace } use "$hfcsdata\w.dta" rename *, lower save "$hfcsdata\W.dta", replace ****************************************************************************************** cd "$hfcsdata" forvalues i=1(1)5 { use "$hfcsdata\P`i'.dta", clear drop id hid survey foreach var of varlist sa0010- fra0500 { local `var'lab: variable label `var' } gen idpers_temp1="_" egen idpers_temp2=concat(idpers_temp1 ra0010) drop ra0010 reshape wide ra0?0* fra0?0* ra0020 fra0020 ra0030 fra0030 ra0040 fra0040 p* fp*, i(sa0010 sa0100) j(idpers_temp2) string drop idpers_temp* foreach j of varlist ra* fra* p* fp* { local last2car=substr("`j'", `=length("`j'")-1', 1) local last1car=substr("`j'", length("`j'"), 1) if "`last2car'"=="1" { local firstcar=substr("`j'",1, `=length("`j'")-3') label variable `firstcar'_`last2car'`last1car' "``firstcar'lab' - `last2car'`last1car'" } else { local firstcar=substr("`j'",1, `=length("`j'")-2') label variable `firstcar'_`last1car' "``firstcar'lab' - `last1car'" } } save "$hfcsdata\P`i'_temp.dta", replace clear use "$hfcsdata\H`i'.dta", clear merge 1:1 sa0010 sa0100 im0100 using "$hfcsdata\P`i'_temp.dta", nogen save "$hfcsdata\M`i'.dta", replace erase "$hfcsdata\P`i'_temp.dta" } forvalues i=1(1)5 { use "$hfcsdata\M`i'.dta", clear merge 1:1 sa0010 im0100 sa0100 using "$hfcsdata\D`i'.dta" save "$hfcsdata\temp`i'.dta", replace } use "$hfcsdata\temp1.dta", clear forvalues j=2(1)5 { append using "$hfcsdata\temp`j'.dta" } drop _merge label drop _merge save "$hfcsdata\hfcs.dta", replace use "$hfcsdata\temp1.dta", clear replace im0100=0 append using "$hfcsdata\hfcs.dta" foreach var of varlist hb* hc* hd* hg* hh* hi* pa* pe* pf* pg* ra* sa0100 { capture confirm numeric variable `var' if _rc { rename `var' `var'_string encode `var'_string, gen(`var') drop `var'_string } } global IMPUTEDVARS="" foreach var of varlist hb* hc* hd* hg* hh* hi* pa* pe* pf* pg* ra* { capture confirm numeric variable `var' if !_rc { tempvar sd count quietly bysort sa0100 sa0010 : egen `sd'=sd(`var') quietly bysort sa0100 sa0010 : egen `count'=count(`var') quietly count if ( (`sd'>0 & `sd' <. ) | `count'<6 | (f`var'>4000 & f`var'<5000) ) & im0100==0 if r(N)>0 global IMPUTEDVARS "$IMPUTEDVARS `var'" quietly replace `var'=. if ( (`sd'>0 & `sd' <. ) | `count'<6 | (f`var'>4000 & f`var'<5000) ) & im0100==0 drop `sd' `count' disp ".", _continue } } foreach var of varlist d* hb3001-hb40033 hb4099 hb4105 hb4205 { local type1: type `var' local type2=substr("`type1'",1,3) if "`type2'"!="str" { replace `var'=. if im0100==0 } } drop id _merge save "$hfcsdata\hfcs.dta", replace forvalues i=1(1)5 { erase "$hfcsdata\temp`i'.dta" } mi import flong, m(im0100) id(sa0100 sa0010) clear mi register imputed $IMPUTEDVARS mi register passive d* mi varying save "$hfcsdata\hfcs.dta", replace use "$hfcsdata\W.dta", clear rename sa0100 sa0100_string encode sa0100_string, gen(sa0100) drop sa0100_string save "$hfcsdata\Wtemp.dta", replace use "$hfcsdata\hfcs.dta", clear merge m:1 sa0100 sa0010 using "$hfcsdata\Wtemp.dta" drop _merge erase "$hfcsdata\Wtemp.dta" mi svyset [pw=hw0010], bsrweight(wr0001-wr1000) vce(bootstrap) save "$hfcsdata\hfcs.dta", replace