现在我有两个数据表格(附在后面):1.只有一行数据,institutionID(机构编码), id(员工编码), pre的时间区间(pre_min到pre_max)和post的时间区间(post_min到post_max) 2.大概有六十万条数据, 包括institutionID, id,报告时间(Rptdt2)。
现在我想在第二个数据里面生成一个标记变量x,让x=1如果观测值的Rptdt2处于pre或post时间区间之内,并且属于同一个InstitutionID,并且不属于同一个id。
本来想自己定义宏来做,我的思路是打开第二个表格,preserve,打开第一个表格 local 四个时间截点和两个id, restore, 让Rptdt2 和两个id 与生成的宏进行比对,生成x。但是写的命令失败了,请教一下大家了!
这是我写的错误代码:
use 2.dta
preserve
use 1.dta
local win1 `r(pre_min)
local win2 `(pre_max)
local win3 `(post_min)
local win4 `(post_max)
local institu InstitutionID
local idd id
restore
gen x=1 if InstitutionID== `institu' & Rptdt2> `win1' & Rptdt2< `win2' & id!=`idd'
replaca x=1 if InstitutionID== `institu' & Rptdt2> `win3' & Rptdt2< `win4' & id!=`idd'
这里是数据: