如何在Stata中通过多条件生成三个基于ICD编码的新变量?
Stata实现代码:基于ICD编码生成COVID相关死亡分类变量
以下是针对需求的Stata实现代码,同时兼容不同版本的Stata:
方法1:适用于Stata 16及以上版本(使用rowanymatch()函数)
* 生成Var1:主要因COVID死亡 gen Var1 = (Ucod == "U07.1") * 生成Var2:非COVID主死因但合并COVID gen Var2 = (Ucod != "U07.1") & rowanymatch(Record_2-Record_20, "U07.1") * 生成Var3:非COVID主死因且无COVID合并 gen Var3 = (Ucod != "U07.1") & !rowanymatch(Record_2-Record_20, "U07.1")
方法2:适用于Stata 15及以下版本(兼容旧版本)
* 先标记其他记录中是否存在U07.1 gen has_covid = 0 foreach var of varlist Record_2-Record_20 { replace has_covid = 1 if `var' == "U07.1" } * 生成三个分类变量 gen Var1 = (Ucod == "U07.1") gen Var2 = (Ucod != "U07.1") & has_covid gen Var3 = (Ucod != "U07.1") & !has_covid * 可选:删除中间变量has_covid drop has_covid
代码说明
Var1:仅当主死因编码Ucod严格等于U07.1时赋值为1,其余情况为0Var2:满足两个条件时赋值为1:主死因不是U07.1,且Record_2到Record_20中至少有一个变量的编码为U07.1Var3:满足两个条件时赋值为1:主死因不是U07.1,且Record_2到Record_20中所有变量的编码都不为U07.1
内容的提问来源于stack exchange,提问作者Pkbti
相关产品推荐
相关产品推荐

