Hello Everyone,
Hope you are doing great. I am running my code, but right in the middle of my code I need to merge one file which contains calculated weights from interview frequencies. But when I run my code Stata says that I am using the old syntax of a merge. Please have a look at the data and suggest what should I do to avoid this problem. I have read the manual for Merge command but still confused. I have attached complete data from weights file and example of data from main file.
Now here is the type of data from the main file
Here is my code which illustrates how i am merging these two datasets
Hope you are doing great. I am running my code, but right in the middle of my code I need to merge one file which contains calculated weights from interview frequencies. But when I run my code Stata says that I am using the old syntax of a merge. Please have a look at the data and suggest what should I do to avoid this problem. I have read the manual for Merge command but still confused. I have attached complete data from weights file and example of data from main file.
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input float(wt06 wt12 wt24 wt36 cum36 wt06x wt12x wt24x wt36x cum36x) 2.620274 5.240549 .14448807 -4.951572 .14448807 1.0909091 2.1818182 .6857143 -.8103896 .6857143 5.498567e-17 1.0997134e-16 .9724288 1.9448576 .9724288 -4.516161e-17 -9.032323e-17 .6857143 1.3714286 .6857143 -1.3746417e-17 -2.7492835e-17 -6.65337e-18 1.4186095e-17 -6.65337e-18 0 0 0 0 0 end
Now here is the type of data from the main file
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input double hhidpn byte hacohort float(age married phealth rgovt sgovt sitearnsemp ritearnsemp working) 1100032701 1 50 1 0 0 0 16832.605 15360.938 100 1100032701 1 53 1 100 12000 0 13345.703 0 0 1100032702 1 47 1 0 0 0 18127.424 14268.16 100 1100032702 1 50 1 0 0 12000 0 13345.703 100 1100067401 3 58 0 0 0 0 0 10145.454 100 1100067401 3 62 0 0 16672 0 0 0 0 1100067401 3 60 0 0 15400 0 0 0 0 1100121501 3 71 0 0 14400 0 0 0 0 1100121501 3 75 0 0 16800 0 0 0 0 1100121501 3 73 0 0 15400 0 0 0 0 1100149201 3 62 1 0 0 28000 5890.279 0 0 1100149201 3 58 1 0 0 0 45090.91 0 0 1100149201 3 60 1 0 0 0 45090.91 0 0 1100149202 3 58 1 0 0 0 0 47345.45 100 1100149202 3 60 1 0 0 0 0 48096.28 100 1100149202 3 62 1 0 28000 0 0 5890.279 0 1100181601 1 60 1 0 6000 0 2330.6687 2530.856 0 1100181602 1 55 1 0 0 6000 2848.595 1295.541 100 1100181602 1 57 1 0 0 . . 0 100 1100188101 3 84 0 0 11680 0 0 0 0 1100188101 3 82 1 100 10640 11410 0 0 0 1100188101 3 80 1 0 8760 11780 0 0 0 1100188102 3 87 1 0 11410 10640 0 0 0 1100188102 3 86 1 0 11780 8760 0 0 0 1100188102 3 89 1 0 19100 0 0 0 0 1100193701 3 50 0 100 4800 0 0 0 . 1100213201 1 72 0 100 6600 0 0 0 0 1100213201 1 69 0 100 9600 0 0 1147.6398 0 1100213601 3 62 1 100 19600 22400 0 0 0 1100213601 3 60 1 0 18000 20100 0 16061.21 0 1100213601 3 58 1 0 0 17520 0 33818.18 0 1100213603 3 57 1 0 17520 0 33818.18 0 0 1100213603 3 61 1 0 22400 19600 0 0 0 1100213603 3 59 1 0 20100 18000 16061.21 0 0 1100218002 3 85 1 100 14000 14000 0 0 0 1100218002 3 83 1 0 12600 12600 0 0 0 1100218003 3 71 1 100 14000 14000 0 0 0 1100218003 3 69 1 0 12600 12600 0 0 0 1100235501 1 70 1 0 14400 7080 0 0 0 1100235502 1 70 1 0 7080 14400 0 0 0 1100252501 3 67 1 0 14700 16730 0 0 0 1100252501 3 71 1 0 15400 16800 0 0 0 1100252501 3 69 1 0 15220 17960 0 0 0 1100252502 3 69 1 0 17960 15220 0 0 0 1100252502 3 67 1 0 16730 14700 0 0 0 1100252502 3 71 1 0 16800 15400 0 0 . 1100257301 3 74 1 0 5600 22980 0 0 0 1100257301 3 76 1 0 6240 23010 0 0 0 1100257302 3 70 1 0 23010 6240 0 0 0 1100257302 3 68 1 0 22980 5600 0 0 0 1100280001 3 56 0 0 0 0 0 0 100 1100280001 3 59 0 0 27120 0 0 37866.08 0 1100280001 3 57 0 0 0 0 0 22482.1 0 1100296502 3 88 0 0 0 0 0 0 0 1100296502 3 90 0 0 9000 0 0 0 0 1100296502 3 86 0 0 8400 0 0 0 0 1100319401 3 74 1 0 21140 . . 0 0 1100319401 3 73 1 0 21580 0 0 0 0 1100319401 3 76 1 0 21440 . . 0 0 1100319402 3 72 1 0 0 21580 0 0 0 1100321301 3 69 0 0 14000 0 0 0 0 1100321301 3 68 0 0 13200 0 0 0 0 1100321301 3 71 0 0 14560 0 0 0 0 1100368301 3 49 1 0 0 0 25983.635 22861.09 100 1100368302 3 50 1 0 0 0 22861.09 25983.635 100 1100423401 1 52 1 0 12072 . . 0 0 1100423401 1 59 1 0 14840 0 15781.817 0 0 1100423401 1 55 1 0 12600 0 13345.703 0 0 1100423402 1 52 1 0 0 12600 0 13345.703 100 1100423402 1 56 1 0 0 14840 0 15781.817 100 1100437901 1 70 0 0 6576 0 0 0 0 end
Here is my code which illustrates how i am merging these two datasets
Code:
clear all local output "D:\Share\Output" local programs "D:\Share\Programs" local samples "under60_hosp_insured" // age60to64_hosp_insured over65_hosp_insured" local fes "cohortXwaveXcountry" local outcomes "oop_spend working ritearnsemp sitearnsemp hgovt hittot rhlthlm phealth fphealth" local isocountry "Austria Belgium Czech Denmark France Germany Italy Spain Sweden Switzerland " cap log close log using "D:\Share\output\implied_effects_log.log", replace foreach samp in `samples' { foreach fe in `fes' { foreach cont in `isocountry' { mat drop _all local colnames "" local col_list_1 "" local col_list_2 "" local col_list_IE "" * Keep only those hospitalized use "D:\Share\Data\SHARE_long.dta" if `samp'==1 & `cont'==1, clear *Get implied effects weighting matrix to be used at the end of this do-file preserve do "D:\Share\Programs\SHARE Implied Effects Weights.do" restore merge using "D:\Share\output\implied_effects_matrix.dta" drop _merge mkmat wt06 wt12 wt24 wt36 cum36 if _n<=3 mkmat wt06x wt12x wt24x wt36x cum36x if _n<=3 * Generate event time dummies drop if evt_time<-$window drop if evt_time>$window forv i = 0/$window { if (`i' < 0) { local j = abs(`i') gen evt_f`j' = (evt_time == `i') } else { gen evt_l`i' = (evt_time == `i') } } egen cohortXwave = group(hacohort wave) egen cohortXwaveXcountry = group(hacohort wave isocountry) * Define number of variables for "implied effects" matrix local J = 0 foreach outcome of varlist `outcomes' { local J = `J' + 1 } matrix define results_IEs = J(33,`J',.) local j = 1 foreach v of varlist `outcomes' { local controls "" if "`fe'"=="hhidpn" { xi i.wave drop _Iwave_11 local controls "_I*" if regexm("`v'","_c")==1 { drop _Iwave_2 _Iwave_3 } drop _Iwave_2 _Iwave_3 } di "FE = `fe', Sample = `samp', rregi = `cont' , Var = `v'" *areg `v' evt_time evt_l* `controls' [pweight=rwtresp], absorb(`fes') cluster(hhidpn) areg `v' evt_time evt_l* `controls' [pweight=rwtresp], absorb(`fes') cluster(hhidpn) *areg `v' evt_time evt_l* `controls' i.country_fe [pweight=rwtresp], absorb(`fes') cluster(hhidpn) *areg `v' evt_time evt_l* `controls' dum* [pweight=rwtresp], absorb(`fes') cluster(hhidpn) *reg `v' evt_time evt_l* `controls' i.country_fe i.cohortXwave [pweight=rwtresp], cluster(hhidpn) *reghdfe `v' evt_time evt_l* `controls' [pweight=rwtresp], absorb(country_fe cohortXwave) cluster(hhidpn) *log close *Saves N, number of individuals, and effective sample size to matrix local N = e(N) local C = e(N_clust) local R= e(r2) * Save first four rows as N, unique individuals, weighted individuals, and R-squared di "`N' \ `C' \ `R' " mat input N=(`N' \ `C' \ `R' ) mat rown N="N" "Indiv" "R2" * Save coefficients and add to column matrix eb = e(b) matrix eb = (N\ eb') * Save variance-covariance matrix matrix var= (e(V)) local colnames: coln var matrix list var // YU ADDED THIS local n=0 * Drop SE matrix from prior run cap mat drop se * Clean up matrices for output foreach col in `colnames' { local n=`n'+1 mat c`n'=var[`n'..., `n'] local rownames: rown c`n' foreach w of local rownames { local rw_c`n' `rw_c`n'' `w'_`col' } matrix rown c`n'= `rw_c`n'' matrix coln c`n'= `v' matrix se=(nullmat(se)\ c`n') cap mat drop c`n' local rw_c`n' "" } if regexm("`v'","_c")==1 { mat se=(N\se) matrix results_ses_2=(nullmat(results_ses_2), se) matrix results_coefs_2 = (nullmat(results_coefs_2), eb) local col_list_2 `col_list_2' `v' } { mat se=(N\se) matrix results_ses_1=(nullmat(results_ses_1), se) matrix results_coefs_1 = (nullmat(results_coefs_1), eb) local col_list_1 `col_list_1' `v' } * Calculating implied effects: * (lincom takes the last estimates stored) *Using Earnings weights lincom wt06[1,1]*evt_l0 + wt06[2,1]*evt_l1 + wt06[3,1]*evt_l2 matrix results_IEs[1,`j'] = r(estimate) matrix results_IEs[2,`j'] = r(se) lincom wt12[1,1]*evt_l0 + wt12[2,1]*evt_l1 + wt12[3,1]*evt_l2 matrix results_IEs[3,`j'] = r(estimate) matrix results_IEs[4,`j'] = r(se) lincom wt24[1,1]*evt_l0 + wt24[2,1]*evt_l1 + wt24[3,1]*evt_l2 matrix results_IEs[5,`j'] = r(estimate) matrix results_IEs[6,`j'] = r(se) lincom wt36[1,1]*evt_l0 + wt36[2,1]*evt_l1 + wt36[3,1]*evt_l2 matrix results_IEs[7,`j'] = r(estimate) matrix results_IEs[8,`j'] = r(se) lincom cum36[1,1]*evt_l0 + cum36[2,1]*evt_l1 + cum36[3,1]*evt_l2 matrix results_IEs[9,`j'] = r(estimate) matrix results_IEs[10,`j'] = r(se) test wt12[1,1]*evt_l0 + wt12[2,1]*evt_l1 + wt12[3,1]*evt_l2 = wt36[1,1]*evt_l0 + wt36[2,1]*evt_l1 + wt36[3,1]*evt_l2 matrix results_IEs[11,`j'] = r(p) *Using OOP weights lincom wt06x[1,1]*evt_l0 + wt06x[2,1]*evt_l1 + wt06x[3,1]*evt_l2 matrix results_IEs[12,`j'] = r(estimate) matrix results_IEs[13,`j'] = r(se) lincom wt12x[1,1]*evt_l0 + wt12x[2,1]*evt_l1 + wt12x[3,1]*evt_l2 matrix results_IEs[14,`j'] = r(estimate) matrix results_IEs[15,`j'] = r(se) lincom wt24x[1,1]*evt_l0 + wt24x[2,1]*evt_l1 + wt24x[3,1]*evt_l2 matrix results_IEs[16,`j'] = r(estimate) matrix results_IEs[17,`j'] = r(se) lincom wt36x[1,1]*evt_l0 + wt36x[2,1]*evt_l1 + wt36x[3,1]*evt_l2 matrix results_IEs[18,`j'] = r(estimate) matrix results_IEs[19,`j'] = r(se) lincom cum36x[1,1]*evt_l0 + cum36x[2,1]*evt_l1 + cum36x[3,1]*evt_l2 matrix results_IEs[20,`j'] = r(estimate) matrix results_IEs[21,`j'] = r(se) test wt12x[1,1]*evt_l0 + wt12x[2,1]*evt_l1 + wt12x[3,1]*evt_l2 = wt36x[1,1]*evt_l0 + wt36x[2,1]*evt_l1 + wt36x[3,1]*evt_l2 matrix results_IEs[22,`j'] = r(p) *Using LFP weights lincom wt06x[1,1]*evt_l0 + wt06x[2,1]*evt_l1 + wt06x[3,1]*evt_l2 matrix results_IEs[23,`j'] = r(estimate) matrix results_IEs[24,`j'] = r(se) lincom wt12x[1,1]*evt_l0 + wt12x[2,1]*evt_l1 + wt12x[3,1]*evt_l2 matrix results_IEs[25,`j'] = r(estimate) matrix results_IEs[26,`j'] = r(se) lincom wt24x[1,1]*evt_l0 + wt24x[2,1]*evt_l1 + wt24x[3,1]*evt_l2 matrix results_IEs[27,`j'] = r(estimate) matrix results_IEs[28,`j'] = r(se) lincom wt36x[1,1]*evt_l0 + wt36x[2,1]*evt_l1 + wt36x[3,1]*evt_l2 matrix results_IEs[29,`j'] = r(estimate) matrix results_IEs[30,`j'] = r(se) lincom cum36x[1,1]*evt_l0 + cum36x[2,1]*evt_l1 + cum36x[3,1]*evt_l2 matrix results_IEs[31,`j'] = r(estimate) matrix results_IEs[32,`j'] = r(se) test wt12x[1,1]*evt_l0 + wt12x[2,1]*evt_l1 + wt12x[3,1]*evt_l2 = wt36x[1,1]*evt_l0 + wt36x[2,1]*evt_l1 + wt36x[3,1]*evt_l2 matrix results_IEs[33,`j'] = r(p) local col_list_IE `col_list_IE' `v' local j = `j' + 1 } // outcomes * Labeling rows of implied effects table * NOTE: 36a indicate the annual effect at 36 months * the 36m are the average annual effects that are presented in the paper local r="b_6mEarn se_6mEarn b_12mEarn se_12mEarn b_24mEarn se_24mEarn b_36mEarn se_36mEarn b_cum36Earn se_cum36Earn p_Earn b_6mOOP se_6mOOP b_12mOOP se_12mOOP b_24mOOP se_24mOOP b_36mOOP se_36mOOP b_cum36OOP se_cum36OOP p_OOP b_6mLFP se_6mLFP b_12mLFP se_12mLFP b_24mLFP se_24mLFP b_36mLFP se_36mLFP b_cum36LFP se_cum36LFP p_LFP" mat rown results_IEs=`r' * Outputting and saving results local types = "coefs ses" foreach type of local types { drop _all mat coln results_`type'_1=`col_list_1' svmat2 results_`type'_1, names(col) rnames(var) order var outsheet using "`output'\SHARE_ES_`type'_`samp'_`cont'_$window.txt", replace } // end foreach type of local types drop _all mat coln results_IEs=`col_list_IE' svmat2 results_IEs, names(col) rnames(var) full order var mat list results_IEs outsheet using "`output'\SHARE_IEs_`samp'_`cont'_$window.txt", replace } // samples } // fes } //country log close
Comment