如何在Stata中保留所属分组对应时间点均有结果的ID观测值
解决方法:筛选符合条件的ID观测
要保留所属分组对应时间点均有非缺失抑郁结局数据的ID,可通过以下Stata命令实现:
核心命令(简洁版)
* 按ID分组,仅保留满足分组时间点数据完整的观测 bysort id: keep if (group == 1 & !missing(depression_outcome[time==1]) & !missing(depression_outcome[time==2])) | (group == 2 & !missing(depression_outcome[time==2]) & !missing(depression_outcome[time==3]))
命令逻辑解释
bysort id:按个体ID分组处理每个观测- 对于组1的ID,检查
time=1和time=2对应的depression_outcome均无缺失 - 对于组2的ID,检查
time=2和time=3对应的depression_outcome均无缺失 - 仅保留满足上述条件的ID的所有观测,最终会留下示例中的ID1和ID3的全部数据
分步版命令(更易理解)
如果需要更清晰的分步操作,可执行以下步骤:
* 标记当前观测是否为该组要求的时间点且无缺失值 gen valid = !missing(depression_outcome) & ((group==1 & inlist(time,1,2)) | (group==2 & inlist(time,2,3))) * 计算每个ID的有效观测数量 bysort id: gen n_valid = sum(valid) * 定义每个ID所属分组需要的有效观测数(两组均需2个) bysort id: gen required = 2 * 保留有效数达标ID的所有观测 bysort id: keep if n_valid == required * 清理临时变量 drop valid n_valid required
内容的提问来源于stack exchange,提问作者statahelp22
相关产品推荐
相关产品推荐

