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:
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