最近需要使用PSM-DID,要跑40多个psmatch2。
由于psmatch2输出结果不太方便,一个个复制粘贴比较费眼(也就复制200多下??)
黄河泉老师给出了一个解决办法,但他的代码需要个人适配。索性写了个小程序,欢迎尝试反馈。
原理:
- 使用scalar取出内存中保存的psmatch2运行结果
- 将前面取出的scalars依次输入到矩阵matrix内
- 将matrix用logout命令导出到excel
相信能用上这个程序一定是要跑大量循环的,一般不会是小白了,就不详细注释程序了…(手动狗头)
老规矩,先上效果图
代码
- 数据导入
clear all
use "data.dta"
set seed 10101
gen ranorder=runiform()
sort ranorder
- 定义全局变量
global PS "x1 x2 x3 x4 x5" //定义匹配变量
global Y "dif_y1 dif_y2 dif_y3" //定义多个结果变量
global Y_out "dif_y1, dif_y2, dif_y3" //定义想要输出到表格的结果变量,注意中间要加上逗号
- 自定义函数a