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

Stata中按Test A阳性条件移除同一ID第二条记录的方法求助

Stata 数据集筛选实现方案

针对你的需求——当Test A结果为阳性时移除对应ID的第二条记录,以下是直接可用的Stata代码及步骤说明:

核心代码

* 按ID分组,提取每个ID的Test A检测结果
bysort ID: gen A_result = Result if TestType == "A"
bysort ID: replace A_result = A_result[1]

* 执行筛选逻辑:Test A阳性则仅保留Test A记录,否则保留所有记录
keep if (A_result == "+ve" & TestType == "A") | A_result != "+ve"

* 清理临时变量
drop A_result

代码解释

  1. 提取Test A结果:

    • 第一条命令在每个ID组内,仅给Test Type为A的记录赋值Result到临时变量A_result,其余记录为缺失值。
    • 第二条命令将每个ID组内所有记录的A_result统一替换为该组Test A的结果,确保组内所有记录都能识别到Test A的状态。
  2. 执行筛选:

    • 条件(A_result == "+ve" & TestType == "A"):当Test A为阳性时,仅保留Test Type为A的记录。
    • 条件A_result != "+ve":当Test A为阴性时,保留该ID的所有记录。
  3. 清理临时变量:删除不再需要的A_result,保持数据集整洁。

验证示例数据

将代码应用到你的示例数据集后,会得到你期望的结果:

  • ID1保留两条记录(Test A为阴性)
  • ID2仅保留Test A的记录(Test A为阳性)
  • ID3、ID4的记录全部保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:24:27