Stata数据转置和数据匹配

发布于:2023-01-04 ⋅ 阅读:(835) ⋅ 点赞:(0)

目录

一、数据转置

1.说明

2.reshape

二、数据匹配

1.说明

2.merge

参考


一、数据转置

1.说明

在数据处理的过程中,偶尔会发现一些数据下载下来并非是面板数据的格式,而是列为城市,行为年份的数据,如下图所示:

这种年份为行的数据要变成与城市相同的列,就是把"wide"格式变成"long"格式 

接下来主要介绍命令reshape,可以讲其转化为面板数据的格式

2.reshape

stata 官方解释图

 

具体命令和解释

reshape long a, i(city) j(year)

long:意思是把"wide"转换成"long"格式

a:是转换对象的前缀名,在这里就是年份的前缀

i:是识别变量,在这里就是城市(city)的变量名

j:是新变量名,"a"中转换过来的数据以"j"命名,在这里就是年份(year)

由于stata内纯数字不能作为变量名,需要在年份前加前缀名"a",变成“a2020”这种形式,或者用其他任意的字母,最终可以得到如下结果:

 除此之外还可通过安装外部命令通过gather和spread、sreshape、fastreshape进行转化

ssc install tidy
ssc install sreshape
ssc install fastreshape

注:gather和spread来自外部命令tidy


二、数据匹配

1.说明

将不同多个数据文件根据一定的规则匹配到一个文件里,在数据量很大且乱序的情况下比较方便。比如要按各城市和年份对应匹配GDP到现有的数据中,可以使用merge进行操作

2.merge

首先匹配的数据都需要是dta格式,并且拥有相同的匹配对象,在这里是城市(city)和年份(year)

cd "D:\edu\paper\stata"
merge m:n city year using gdp.dta

以当前打开的数据为主体,输入以上命令

cd:将路径设置到匹配数据所在的文件夹,方便调用

m:n:按照交集的原则进行匹配(还可以用1:n或m:1,两者为包含和被包含的关系)

city&year:按照对应的城市和年份进行匹配

gdp.dta:为对应的数据文件

此时可以得到匹配后的结果如图:

 

_merge==1意味着主体数据有的,匹配数据里没有

_merge==2意味着主体数据里没有,匹配数据里有

最后如果要删除未匹配上的数据,就根据实际情况drop

drop if _merge==1
drop if _merge==2
drop _merge


参考

Stata官方help

help tidy

help merge


网站公告

今日签到

点亮在社区的每一天
去签到