I am trying to run loop within loop and get the p values in the matrix. I want to assign random treatment (post) to the non treated countries in the same year and run the regression for 3 different outcome variables for 50 times in a loop. And then get the value of p in the matrix. Can anyone please help me.

I am doing the following. I am either getting the matrix table with missing p values (.) or getting conformability error. please help !!


drop random
drop post
set more off
set matsize 800
set seed 6000
unab y : wheat rice lentils
local l : word count `y'
matrix p = J(50,`l',.)
matrix colnames p =`y'
matlist p

foreach i of numlist 1/50 {

generate random=uniform()
sort year random
generate post=0
replace post=1 in 1 in 1/29 // for year 2010
replace post=1 in 296/337 // for year 2011
replace post=1 in 578/619 // for year 2012

foreach var of local y {
quietly reg `var' post i.country_id i.year i.country#c.line_time_trend [aw=ypop], cluster( country_id )
matrix p[1,`i++'] = 2*ttail(e(df_r), abs(_b[post]/_se[post]))
}
drop random
drop post
}
matlist p