这是培训班的一个小伙伴遇到的一个问题,她从 Wind 数据库下载了一个企业应付账款股本资本公积数据:demo1203.xlsx,但是她不知道如何将这个数据转换成面板数据。我们来一起学习下这个数据的转换和合并,首先我们把这个数据读取进来:
import excel using "demo1203.xlsx", clear first |
![]()
我们怎么把这个数据转换成面板数据呢?
这个数据中有这些变量:
- 证券代码
- 证券简称
- 实收资本或股本报告期2012一季报表类型
- 实收资本或股本报告期2012中报报表类型 …
- 实收资本或股本报告期2020年报报表类型
- 资本公积金报告期2012一季报表类型合并报表
- 资本公积金报告期2012中报报表类型合并报表 …
- 资本公积金报告期2020年报报表类型合并报表
- 应付账款报告期2012一季报表类型合并报表
- 应付账款报告期2012中报报表类型合并报表 …
- 应付账款报告期2020年报报表类型合并报表
中间我省略了很多,很容易发现,这些变量可以分 3 组,实收资本或股本、资本公积金和应付账款,我们可以分别处理这三组数据然后再合并,首先我们保留实收资本或股本组的变量:
use 企业应付账款股本资本公积, clear |
这是一个宽面板,我们可以用 gather 命令将其转为长面板:
gather 实收资本或股本报告期2012一季报表类型 - 实收资本或股本报告期2020年报报表类型 |
现在只剩下 4 个变量了:证券代码 证券简称 variable value
我们再做一些处理:
drop if missing(证券代码) |
成功了!保存下:
save 实收资本或股本, replace |
同样的方法再处理下另外两组变量:
use 企业应付账款股本资本公积, clear |
注意这里我使用了另外一种表示变量列表的方法:资本公积金*,这表示所有以资本公积金开头的变量。
use 企业应付账款股本资本公积, clear |
最后将三个表合并下:
use 实收资本或股本, clear |
这样我们的数据就整理好了:
![]()
注意这是个平衡面板,虽然有很多缺失值,这给我们提供了一个把非平衡面板变成平衡面板的思路:先 spread 再 gather。
点击这里跳转到 RStata 短书平台获取附件:问答|如何将从 Wind 数据库下载的数据转换成面板?
评论