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

如何从存在重叠的长数据集统计各时段每人的唯一处方数

统计Stata数据集中个体各时段的唯一处方数量

我有如下格式的Stata数据集,需要统计每个个体在每个时段服用的唯一处方数量,规则如下:

  • 处方的起始时段和终止时段均为包含性统计(即该处方会被计入这两个时段)
  • 同一时段内的同一种处方仅统计一次,即使存在多条重叠记录

原始数据集

PersonPrescriptionStart periodEnd period
1A12
1A23
1A34
1B23
1B45
1C24
1C56
2A23
2A34
2B12
2B23
2C23
2C34
2C56

期望最终数据集

PersonPeriodUnique Prescriptions
111
123
133
143
152
161
211
223
233
242
251
261

Stata实现代码

步骤1:扩展处方覆盖的所有时段

将每条处方记录拆分为其覆盖的每个单独时段:

expand = End_period - Start_period + 1
bysort Person Prescription Start_period: gen Period = Start_period + _n - 1

步骤2:去除重复记录

确保每个Person-Period-Prescription组合仅保留一条:

bysort Person Period Prescription: keep if _n == 1

步骤3:统计唯一处方数量

按个体和时段分组,统计该时段内的唯一处方数:

bysort Person Period: gen Unique_Prescriptions = _N
keep Person Period Unique_Prescriptions
bysort Person Period: keep if _n == 1
sort Person Period

运行上述代码后,即可得到符合要求的最终数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:00:24