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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:31:01