当前位置: 首页 > news >正文

运用stata对CFPS数据库进行打开清洗和处理,以政府转移支付为例

首先如果处理2018的数据,需要更改工作目录

文件--更改工作目录--选自己对应的文件夹即CFPS2018stata

我们需要打开需要处理的文件夹

代码:

use "cfps2018famecon_202512.dta", clear

后需要找到政府转移支付

给出如下命令,如果没有找到可以手动在右边边框手动进行寻找该变量

lookfor 转移

lookfor 补贴

lookfor 政府

lookfor gov

最终找到了fn100` (是否收到政府补助) 和 `fn101` (政府补助总额)

我们需要将fid18重新命名为fid方便后续合并

lookfor id

describe fid18

rename fid18 fid

describe fid

重新命名结束后给出指令

tab fn100, missing

结果如下,

  • 1 = 是(5,725 个家庭)
  • 5 = 否(8,476 个家庭)
  • 8 = 不知道(14 个家庭,比例很小)

说明数据比较干净,接下来请直接运行以下代码,完成 2018 年数据的清洗和保存:指令如下

1. 生成清洗后的变量 has_gov
gen has_gov = 0
replace has_gov = 1 if fn100 == 1
replace has_gov = 0 if fn100 == 5

* 2. 处理“不知道”的样本 (建议直接删除,因为无法确定是否获得)
drop if fn100 == 8 | fn100 == .

* 3. 生成年份变量
gen year = 2018

* 4. 只保留关键变量 (ID, 年份, 是否获得补助)
keep fid year has_gov

* 5. 保存为临时文件
save temp2018.dta, replace

其他年份也是专业操作,如果哪个年份错误造作,安装下面操作重新进行这一个年份

1. 重新打开 2022 年数据 (确保内存是干净的)
use "cfps2022famecon_202410.dta", clear

* 2. 重命名 ID (2022 年通常是 fid22)
rename fid22 fid

* 3. 生成政府转移支付变量
gen has_gov = 0
replace has_gov = 1 if fn100 == 1
replace has_gov = 0 if fn100 == 5

* 4. 删除“不知道”的样本
drop if fn100 == 8 | fn100 == .

* 5. 生成年份 (注意是 2022)
gen year = 2022

* 6. 只保留关键变量
keep fid year has_gov

* 7. 保存为临时文件
save temp2022.dta, replace

接下来合并三个数据并且进行处理

1. 合并三年数据
use temp2018.dta, clear
append using temp2020.dta temp2022.dta

* 2. 生成 treat (处理组虚拟变量)
bysort fid: egen treat = max(has_gov)

* 3. 生成首次获得年份 (first_year)
bysort fid: egen first_year = min(cond(has_gov == 1, year, .))

* 4. 生成 did (多期 DID 核心变量)
CFPgen did = 0
replace did = 1 if (year >= first_year) & (treat == 1)

* 5. 设定面板并检查结果
xtset fid year
list fid year has_gov treat first_year did in 1/30, sepby(fid)

* 6. 保存最终数据
save "CFPS_DID_Final.dta", replace

http://www.jsqmd.com/news/473702/

相关文章:

  • 基于PDR算法的室内定位应用:运用行人轨迹推算算法实现连续定位,并优化轨迹采用卡尔曼滤波及无痕...
  • Screeps Arena 实战编程:从零构建你的RTS对战AI
  • 油藏数值模拟中的两相流动 IMPES 方法及 Matlab 实现
  • VSCODE离线环境也能玩转AI编程?手把手教你用CodeGPT插件本地跑大模型
  • 从实验室到开源社区:Scloud+后量子密码算法如何借力openHiTLS加速产业化
  • 提示词工程:这样跟AI说话,它才听你的!
  • 大模型(2):大模型推理文本分类
  • Passmark计算机系统测试工具全解析:从压力测试到性能评分
  • OAuth2.0中state参数的深度应用:业务数据的安全传输与防CSRF实践
  • 新年限定零食礼包推荐:生肖款与新品礼盒,哪一种更能代表节庆氛围? - Top品牌推荐官
  • 优化电动汽车充放电策略实现削峰填谷:一种面向多目标的Matlab调度算法
  • 如果 Canal 跑得比 MySQL 主从同步还快,脏数据怎么防?
  • CentOS7下DuckDB JDBC驱动兼容性构建实战:绕过GLIBC版本限制的三种方案
  • JavaDay07包机制及JavaDoc生成文档
  • Android 休眠机制详解 ——WakeLock、Doze 模式与待机功耗优化实战
  • 5种一维数据转图像的黑科技:GAFS/MTF/递归图实战对比(附Python代码)
  • uni-id-pages配置email
  • Mesa图形栈实战:从GLSL到NIR的完整编译链接流程解析
  • 【java】Queue(队列)接口详解
  • HTML5游戏革命:Facebook Instant Game如何重塑社交娱乐体验
  • 内存马二:Filter
  • ESP32-C3驱动4*4矩阵键盘与OLED显示屏的交互实现
  • Stable Diffusion Anything V5保姆级教程:从部署到生成第一张二次元图
  • 从生肖款918g大礼袋到新品礼盒装,新年限定零食礼包推荐怎么选更稳 - Top品牌推荐官
  • 龙虾三啖:白话OpenClaw
  • Activiti7进阶(流程定义+流程实例+任务负责人+任务候选人)
  • PGP加密解密原理详解:为什么说它是保护隐私的最后防线?
  • JavaScript 深度学习(五)
  • Kettle实战进阶 第10篇 JavaScript脚本中的高效日志调试技巧
  • 软件架构师工作心得