Stata中通过循环将双胞胎变量转换为多胎变量的方法咨询
Stata 批量转换多胎标识变量
假设你的数据中b1、b2分别标记第1、第2个孩子是否为双胞胎,现在需要将它们转换为标记是否为多胎(双胞胎属于多胎范畴)的变量,以下是两种常见场景的循环实现:
场景1:原始变量为二元编码(1=是双胞胎,0=非双胞胎)
由于双胞胎属于多胎,变量取值无需修改,仅需更新变量标签以明确含义:
foreach var in b1 b2 { // 从变量名提取孩子序号 local child_num = substr("`var'", 2, .) label variable `var' "第`child_num'个孩子是否为多胎" }
场景2:原始变量为多分类编码(如1=单胎,2=双胞胎,3=三胞胎等)
需要将所有非单胎的类别统一编码为1(代表多胎),单胎编码为0。你可以选择直接替换原变量,或生成新变量:
直接替换原变量
foreach var in b1 b2 { replace `var' = (`var' != 1) local child_num = substr("`var'", 2, .) label variable `var' "第`child_num'个孩子是否为多胎" }
生成新变量(保留原变量)
foreach var in b1 b2 { gen `var'_multiple = (`var' != 1) local child_num = substr("`var'", 2, .) label variable `var'_multiple "第`child_num'个孩子是否为多胎" }
自定义调整
如果你的原始变量编码规则不同(比如0代表双胞胎、1代表单胎),只需修改条件判断部分,例如将(var' != 1)改为(var' == 0)即可。
内容的提问来源于stack exchange,提问作者Christian Walker
相关产品推荐
相关产品推荐

