Stata数据转置和数据匹配

目录

一、数据转置

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

  • 7
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值