首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多个条件在Stata中生成一个新变量?

如何使用多个条件在Stata中生成一个新变量?
EN

Stack Overflow用户
提问于 2022-11-24 19:54:44
回答 1查看 34关注 0票数 -2

我希望使用数据集中的这些变量生成3个新变量:

名为

  1. Ucod
  2. 19的系列变量: Record_2,Record_3......Record_20

和它们都有字母数字格式的值,基本上是ICD代码,也就是说,I150我想生成三个新变量,分别满足以下三个新条件:

人类主要死于非covid (如果U07.1)

  • People U07.1)

  • People死于非covid条件下) (Var2=1 IF Ucod != U07.1和Record 2/20=非COVID条件下的死亡(Var3=1 ),如果Ucod != U07.1和记录2/20 != U07.1)

有人能建议一个代码来帮助我使用这3个条件生成这3个变量吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-25 15:53:18

这可能会有帮助。请注意,我需要定义一个玩具数据集,以使问题更有味道。

代码语言:javascript
复制
* Example generated by -dataex-. 
clear
input str5(Ucod Record_2) str4(Record_3 Record_4)
"U07.1" "U000"  "U111" "U222"
"U999"  "U07.1" "U444" "U333"
"U888"  "U777"  "U666" "U555"
end

gen wanted1 = Ucod == "U07.1" 

gen count = 0 

quietly foreach v of var Record_* { 
   replace count = count + (`v' == "U07.1")
} 

gen wanted2 = Ucod != "U07.1" & count > 0 

gen wanted3 = Ucod != "U07.1" & count == 0 

list 

     +------------------------------------------------------------------------------+
     |  Ucod   Record_2   Record_3   Record_4   wanted1   count   wanted2   wanted3 |
     |------------------------------------------------------------------------------|
  1. | U07.1       U000       U111       U222         1       0         0         0 |
  2. |  U999      U07.1       U444       U333         0       1         1         0 |
  3. |  U888       U777       U666       U555         0       0         0         1 |
     +------------------------------------------------------------------------------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74565687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档