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
0 Response to Merge Issue
Post a Comment