kanojim 发表于 2020-7-5 20:29 
逐年PSM代码不能直接用if,可以参考B站大佬的代码:逐年PSM代码 - 哔哩哔哩https://www.bilibili.com/rea ...
谢谢~~我按照这个视频写了命令,但是有个问题解决不了,根据视频,匹配完每年要生成一个单独dta文件,然后对这些文件进行合并,但是在匹配完保存为单独文件的时候,我指定的这个文件夹根本没有新生成的单独每年的dta文件,所以也没办法合并成新文件,能否请您帮忙看一下程序哪里出了问题吗?
cd E:\学习、科研\政策效果\数据分析\逐年匹配
forvalues i=2008(1)2013{
preserve
cap keep if year==`i'
cap set seed 0001
cap gen ranorder=runiform()
sort ranorder
cap psmatch2 test road loan_balance invest fin, outcome( lngdp ) logit ate neighbor(1) common caliper(.05) ties, noreplace
cap drop if _weight ==.
cap save `i'.dta, replace
restore
}
use 2008.dta,clear
forvalue i=2009(1)2013{
cap append using `i'.dta
}