如何在Stata中生成标识家庭贫困状态的新变量
在Stata中创建家庭贫困状态标识变量
假设你用来比较的两个数值变量是家庭总收入(比如命名为hh_income)和贫困线标准(比如poverty_threshold),以下是几种常用的实现方式:
1. 生成二元贫困标识变量(最常用)
直接通过条件判断生成1/0变量(1代表贫困,0代表非贫困):
gen poverty_status = (hh_income < poverty_threshold)
Stata会自动把条件为真的观测赋值为1,条件为假的赋值为0;如果任一变量存在缺失值,新变量也会自动设为缺失。
如果需要反过来定义(1=非贫困,0=贫困),只需修改比较符号:
gen poverty_status = (hh_income >= poverty_threshold)
2. 手动处理缺失值(更严谨)
如果需要明确控制缺失值的处理逻辑(比如仅当两个变量都非缺失时才赋值),可以分步骤写:
// 先初始化新变量为缺失值 gen poverty_status = . // 赋值贫困状态 replace poverty_status = 1 if hh_income < poverty_threshold & !missing(hh_income, poverty_threshold) replace poverty_status = 0 if hh_income >= poverty_threshold & !missing(hh_income, poverty_threshold)
3. 生成多分类贫困变量
如果需要区分不同程度的贫困(比如极端贫困、一般贫困、非贫困),可以这样做:
// 初始化变量 gen poverty_category = . // 赋值不同类别 replace poverty_category = 0 if hh_income >= poverty_threshold & !missing(hh_income, poverty_threshold) replace poverty_category = 1 if hh_income >= 0.5*poverty_threshold & hh_income < poverty_threshold & !missing(hh_income, poverty_threshold) replace poverty_category = 2 if hh_income < 0.5*poverty_threshold & !missing(hh_income, poverty_threshold) // 给分类变量添加标签(可选,但更易读) label define poverty_lbl 0 "非贫困" 1 "一般贫困" 2 "极端贫困" label values poverty_category poverty_lbl
注意事项
- 替换代码中的
hh_income和poverty_threshold为你实际使用的变量名 - 确保两个变量都是数值型,如果是字符串变量需要先通过
destring转换
内容的提问来源于stack exchange,提问作者dilala wusimanjiang
相关产品推荐
相关产品推荐

