楼主: 愤怒阿美
2917 1

[数据管理求助] stata两个数据表进行比对的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

9%

还不是VIP/贵宾

-

威望
0
论坛币
287 个
通用积分
2.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
401 点
帖子
13
精华
0
在线时间
252 小时
注册时间
2017-12-2
最后登录
2025-3-19

楼主
愤怒阿美 发表于 2019-8-8 16:25:58 |AI写论文
10论坛币
现在我有两个数据表格(附在后面):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'
这里是数据:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long InstitutionID str20 id float(pre_min pre_max post_min post_max)
  4. 1083 "30267930" 19194 19464 19644 19914
  5. end
  6. format %td pre_min
  7. format %td pre_max
  8. format %td post_min
  9. format %td post_max
复制代码

  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long InstitutionID str20 id float Rptdt2
  4. 101434 "30000000000000010248" 19296
  5. 101434 "30000000000000010248" 19296
  6. 101434 "30000000000000010248" 19331
  7. 101434 "30000000000000010248" 19339
  8. 101434 "30000000000000010248" 19339
  9. 101434 "30000000000000010248" 19347
  10.   1093 "30000000000000010249" 18259
  11.   1093 "30000000000000010249" 18266
  12.   1093 "30000000000000010249" 18275
  13.   1093 "30000000000000010249" 18287
  14.   1093 "30000000000000010249" 18291
  15.   1093 "30000000000000010249" 18344
  16.   1093 "30000000000000010249" 18381
  17.   1093 "30000000000000010249" 18382
  18.   1093 "30000000000000010249" 18399
  19.   1093 "30000000000000010249" 18409
  20.   1093 "30000000000000010251" 18219
  21.   1093 "30000000000000010251" 18231
  22.   1093 "30000000000000010251" 18231
  23.   1093 "30000000000000010251" 18234
  24.   1093 "30000000000000010251" 18256
  25. end
  26. format %td Rptdt2
复制代码




关键词:Stata tata 数据表 Institution generated

沙发
愤怒阿美 发表于 2019-8-8 17:02:07
解决了,,生成宏的时候加个等号就行了。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-7 16:30