目录
一、数据转置
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