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.


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