You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Stata中区分ID组间首次事件与后续事件的技术问询

解决Stata中按ID1-ID2组合区分首次/后续事件的问题

你的核心需求是以ID1和ID2的组合为分组单位,区分组内的首次事件与后续事件。原命令的问题在于分组逻辑错误,且未按事件发生的时间(Year)排序,导致无法正确识别组内事件的先后顺序。

正确实现步骤

  1. 确定分组与排序规则:
    需同时按ID1和ID2分组,并且组内按Year升序排序,这样才能确保事件的先后顺序是按时间逻辑排列的。
  2. 生成事件标记变量:
    • 若只需标记“是否为首次事件”,可以生成二元变量:
      bysort ID1 ID2 (Year): gen is_first = (_n == 1) if Event == 1
      
      该命令会在每个ID1-ID2组内,将按Year排序后的第一个事件(Event=1)标记为1,后续事件标记为0,非事件行(若有的话)会显示缺失值。
    • 若需要记录每个事件在组内的顺序(比如1=首次,2=第二次,以此类推),可以生成顺序变量:
      bysort ID1 ID2 (Year): gen event_order = _n if Event == 1
      

运行效果展示

以你提供的样本数据为例,运行第一个命令后,数据会变成:

ID1 ID2 Event Year is_first
1    2    1   2021        1
1    2    1   2022        0
2    3    1   2021        1
2    3    1   2022        0
2    3    1   2023        0

原命令问题说明

你之前使用的bys ID1 (ID2): gen first=_n if Event==1存在两个关键问题:

  • 分组仅按ID1,未将ID2纳入分组逻辑,会导致同一ID1下不同ID2的事件被混在一起排序;
  • 按ID2排序而非Year,无法反映事件发生的时间先后,自然无法正确识别组内的首次事件。

内容的提问来源于stack exchange,提问作者user21415223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:45:04