Stata学习笔记 下载本文

内容发布更新时间 : 2024/5/6 22:47:44星期一 下面是文章的全部内容请认真阅读。

Chapter4 数据整理

4.1 拆分与连接数据文件要掌握的命令

为了折分或合并数据文件,要掌握下面的命令。这也是该小节的学习目标。

4.2 案例:拆分与连接数据

4.2.1 横向拆分数据

要完成的任务(任务4.1)将mydata 数据分成三个数据文件,分别为学生基本 信息文件student.dta, 经济学成绩文件economy.dta 和数学成绩文件 math.dta。

原始数据文件mydata.dta

将要新生成的三个数据文件如下 student.dta

economy.dta

math.dta

横向拆分数据案例的参考操作

*-将mydata 拆分成学生基本信息数据文件student-------------------- cd d:/mydata/ //在d:/mydata 文件夹下操作 use mydata, clear //打开前面已经创建的数据文件 drop economy math //删除economy 和math 这两个变量

save student, replace //将删除后的数据集命名为student,并保存到当前路径 *-将mydata 拆分成经济学成绩数据文件economy-------------------- use mydata, clear //打开第3 讲已经创建的数据文件

keep id economy //仅保留id 和economy 这两个变量在当前数据集中

save economy,replace //将当前数据集重新命令为economy,并保存到当前路径

*--将mydata 拆分成数学成绩数据文件math-------------------- use mydata, clear keep id math

save math,replace 4.2.2 纵向拆分数据

要完成的任务(任务4.2):将mydata 数据分成二个数据文件,分别为女生数据 集female.dta 和男生数据集 male.dta。 原始数据同上。该任务完成后将要形 成的数据如下 female.dta

male.dta

纵向拆分数据案例的参考操作

*----------------将mydata 拆分成女生数据集female-------------------- use mydata, clear //打开第3 讲已经创建的数据文件 keep if gender==0 //仅保留女生的记录在当前数据集中 save female, replace

*----------------将mydata 拆分成女生数据集male-------------------- use mydata, clear

drop if gender==0 //将所有女生的记录全部从当前数据集中删除 save male, replace

4.3 案例:连接数据文件

4.3.1 纵向合并数据

要完成的任务(任务4.3):将女生数据集female.dta 和男生数据集 male.dta 合并为新的数据集mydata1 原始数据同上。 纵向拆分数据案例的参考操作

*-将女生数据集female 和男生数据集male 合并为新数据mydata1-------- use male, clear //打开记录男生信息的数据文件male

append using female //将记录女生信息的female 文件追加到当前数据集中 save mydata1, replace 4.3.2 横向合并数据

要完成的任务(任务4.4):将学生基本信息数据集student.dta 和数学成绩 math.dta,经济学成绩economy.dta 合并为新的数据集mydata2. 原始数据同上。

横向拆分数据案例的参考操作

*---------将学生基本信息和学习成绩合并成新数据mydata2--------- use economy,clear //打开经济学成绩数据文件 sort id //按学号排序

save economy, replace //重新保存一下

use student,c clear //打开学生基本信息数据文件 sort id //按学号排序

merge id using economy //以学号为关联,将学生的信息和成绩一一对应对接 tab _merge //显示对接情况,3 表示成功对接,1 和2 表示未成功对接 drop _merge //去掉标识对接是否成功变量_merge sort id //去掉变量_merge save mydata2,replace use math,clear sort id

merge id using mydata2 //用学号关联,将mydata2 与数学成绩math 一一对接 drop _merge

save mydata2, replace

4.4 数据重整

4.4.1 要掌握的命令 要掌握下面的命令。

4.4.2 案例:面板数据重整

任务4.5 数据集mywide.dta 共有六个变量,其中后四个变量分别为2003 年和 2004 年的数据成绩和经济学成绩,现要求将数据转化为mylong.dta 的格式,将 年份单独做成变量,数学和经济学成绩则成为两个单独变量。 原始数据mywide.dta

转换后的数据mylong.dta

重整参考操作

*---------将学习成绩数据集mywide 变换形式--------- use mywide, clear

reshape long math economy, i(id name) j(year) //数据重整,宽变长 save mylong, replace

*---------将学习成绩数据集mylong 变换形式--------- reshape wide *或者

use mylong, clear

reshape wide math economy, i(id name) j(yearr) //数据重整,长变宽 save mywide2, replace

4.4.3 案例:多列数据转为少数几列

任务4.6 以下数据集虽然有很多列,但实际上只有一个变量,将该数据复制到 stata 并转化成一项数据

重整参考操作

*---------将多列数据变一列--------- *先将原始数据复制粘贴到STATA 中 stack var1-var6, into(x) clear drop _stack

4.5 案例:数据转置

任务4.7 :将下面的数据行列互换 原始数据 math.dta

互换后的数据应该为: newmath.dta

转置参考操作

*---------转置--------- use math,clear xpose, clear

4.6 字符运算

clear

input str15 x \\\\\end

gen a=strpos(x,\gen b=substr(x,1,a-1) gen c=substr(x,a+1,.) l