研究数据高级数据
年度与季度宽表转长面板Stata代码案例
数据摘要
实证分析常需要将按年份或季度展开的宽表转换为面板结构。本资料提供Stata处理代码、年度与季度输入表格及转换后的面板结果,案例包含总资产报酬率和基本每股收益等变量。可用于学习不同时间频率下的数据重塑与面板整理操作。
基本信息
| 数据频率 | 季度 |
|---|---|
| 当前预览样本量 | 29288 行 |
| 文件格式 | Excel / Stata / Stata代码 |
| 文件包大小 | 3.72 MB |
| 包含内容 | 数据表4份、代码1份 |
| 所属分类 |
样本年份分布
合计 29,288 行 · 2 个年份
2017
2018
查看年份明细
| 年份 | 样本量 |
|---|---|
| 2017 | 14,644 |
| 2018 | 14,644 |
测算方法
案例把指标名称与报告期合并在列名中的公司宽表转为年度或季度面板。导入工作表后删除证券简称为空的记录,保留证券代码与简称作识别字段,使用 gather 将指定范围内的指标列堆叠为“原列名—数值”记录。年度处理从原列名中提取数字作为年份,并截取“报告期”之前的文字作为指标名称;随后为各指标生成对应数值列,按证券代码、简称和年份取均值,整理成每个公司年度一行。季度处理增加报告期识别:一季、中报、三季、年报分别对应第 1—4 季度,并生成“年份q季度”字段,再按公司、年份和季度汇总各指标均值。代码中的列范围和列名模式针对示例数据,使用其他宽表时应按其实际列名调整。
以下字段、样本量及样本仅对应当前展示的数据表,不代表资料包全部文件。查看文件结构
字段列表共 7 个字段
| 字段 | 含义 / 说明 | 类型 | 均值 | 标准差 | 最小值 | 最大值 | 缺失率 |
|---|---|---|---|---|---|---|---|
证券代码 | — | 文本 | — | — | — | — | 0.0000% |
证券简称 | — | 文本 | — | — | — | — | 0.0000% |
year | — | 整数 | 2017.5 | 0.5000085361 | 2017 | 2018 | 0.0000% |
q | — | 整数 | 2.5 | 1.118053076 | 1 | 4 | 0.0000% |
quarter | — | 文本 | — | — | — | — | 0.0000% |
总资产报酬率ROA | (mean) 总资产报酬率ROA | 数值 | 3.983298337 | 6.944081047 | -212.4954 | 67.4329 | 3.4861% |
收益EPS基本 | (mean) 收益EPS基本 | 数值 | 0.2696070463 | 0.5771281504 | -9.57 | 28.02 | 2.7964% |
数据样本预览
资料样本(部分数据)
仅可预览前100 行、100 列,滚动查看其余行列,完整数据以下载文件为准。
| 证券代码 | 证券简称 | year | q | quarter | 总资产报酬率ROA | 收益EPS基本 |
|---|---|---|---|---|---|---|
| 000001.SZ | 平安银行 | 2017 | 1 | 2017q1 | — | 0.31 |
| 000001.SZ | 平安银行 | 2017 | 2 | 2017q2 | — | 0.68 |
| 000001.SZ | 平安银行 | 2017 | 3 | 2017q3 | — | 1.06 |
| 000001.SZ | 平安银行 | 2017 | 4 | 2017q4 | — | 1.3 |
| 000001.SZ | 平安银行 | 2018 | 1 | 2018q1 | — | 0.33 |
| 000001.SZ | 平安银行 | 2018 | 2 | 2018q2 | — | 0.73 |
| 000001.SZ | 平安银行 | 2018 | 3 | 2018q3 | — | 1.14 |
| 000001.SZ | 平安银行 | 2018 | 4 | 2018q4 | — | 1.39 |
| 000002.SZ | 万科A | 2017 | 1 | 2017q1 | 0.2261 | 0.063 |
| 000002.SZ | 万科A | 2017 | 2 | 2017q2 | 1.6585 | 0.66 |
| 000002.SZ | 万科A | 2017 | 3 | 2017q3 | 2.4042 | 1.005 |
| 000002.SZ | 万科A | 2017 | 4 | 2017q4 | 5.2805 | 2.54 |
| 000002.SZ | 万科A | 2018 | 1 | 2018q1 | 0.3381 | 0.081 |
| 000002.SZ | 万科A | 2018 | 2 | 2018q2 | 1.6728 | 0.83 |
| 000002.SZ | 万科A | 2018 | 3 | 2018q3 | 2.7943 | 1.267 |
| 000002.SZ | 万科A | 2018 | 4 | 2018q4 | 5.3306 | 3.06 |
| 000004.SZ | 国农科技 | 2017 | 1 | 2017q1 | -0.879 | -0.014 |
| 000004.SZ | 国农科技 | 2017 | 2 | 2017q2 | -2.7656 | -0.0449 |
| 000004.SZ | 国农科技 | 2017 | 3 | 2017q3 | -3.86 | -0.0647 |
| 000004.SZ | 国农科技 | 2017 | 4 | 2017q4 | 3.4166 | 0.102 |
| 000004.SZ | 国农科技 | 2018 | 1 | 2018q1 | 1.1374 | 0.0245 |
| 000004.SZ | 国农科技 | 2018 | 2 | 2018q2 | 0.3544 | 0.0236 |
| 000004.SZ | 国农科技 | 2018 | 3 | 2018q3 | -2.6266 | -0.0309 |
| 000004.SZ | 国农科技 | 2018 | 4 | 2018q4 | -8.9117 | -0.2414 |
| 000005.SZ | 世纪星源 | 2017 | 1 | 2017q1 | -0.1189 | -0.0096 |
| 000005.SZ | 世纪星源 | 2017 | 2 | 2017q2 | 0.2023 | -0.0168 |
| 000005.SZ | 世纪星源 | 2017 | 3 | 2017q3 | 0.8394 | -0.015 |
| 000005.SZ | 世纪星源 | 2017 | 4 | 2017q4 | 3.7653 | 0.0145 |
| 000005.SZ | 世纪星源 | 2018 | 1 | 2018q1 | 0.8365 | 0.0153 |
| 000005.SZ | 世纪星源 | 2018 | 2 | 2018q2 | 1.2225 | 0.0077 |
| 000005.SZ | 世纪星源 | 2018 | 3 | 2018q3 | 1.6402 | 0.0062 |
| 000005.SZ | 世纪星源 | 2018 | 4 | 2018q4 | 6.8035 | 0.1406 |
| 000006.SZ | 深振业A | 2017 | 1 | 2017q1 | 1.385 | 0.0769 |
| 000006.SZ | 深振业A | 2017 | 2 | 2017q2 | 3.1673 | 0.1849 |
| 000006.SZ | 深振业A | 2017 | 3 | 2017q3 | 4.1979 | 0.2512 |
| 000006.SZ | 深振业A | 2017 | 4 | 2017q4 | 8.1484 | 0.5968 |
| 000006.SZ | 深振业A | 2018 | 1 | 2018q1 | 2.653 | 0.212 |
| 000006.SZ | 深振业A | 2018 | 2 | 2018q2 | 4.3766 | 0.3081 |
| 000006.SZ | 深振业A | 2018 | 3 | 2018q3 | 5.4975 | 0.3728 |
| 000006.SZ | 深振业A | 2018 | 4 | 2018q4 | 8.6781 | 0.6476 |
| 000007.SZ | 全新好 | 2017 | 1 | 2017q1 | -1.0811 | 0 |
| 000007.SZ | 全新好 | 2017 | 2 | 2017q2 | 1.1826 | 0.0607 |
| 000007.SZ | 全新好 | 2017 | 3 | 2017q3 | -1.2176 | 0.0298 |
| 000007.SZ | 全新好 | 2017 | 4 | 2017q4 | 0.0238 | 0.0475 |
| 000007.SZ | 全新好 | 2018 | 1 | 2018q1 | -2.4013 | -0.02 |
| 000007.SZ | 全新好 | 2018 | 2 | 2018q2 | -3.9319 | -0.0319 |
| 000007.SZ | 全新好 | 2018 | 3 | 2018q3 | -3.2928 | -0.025 |
| 000007.SZ | 全新好 | 2018 | 4 | 2018q4 | -48.8459 | -0.57 |
| 000008.SZ | 神州高铁 | 2017 | 1 | 2017q1 | 0.1762 | 0.0027 |
| 000008.SZ | 神州高铁 | 2017 | 2 | 2017q2 | 1.0099 | 0.0198 |
| 000008.SZ | 神州高铁 | 2017 | 3 | 2017q3 | 2.0112 | 0.0434 |
| 000008.SZ | 神州高铁 | 2017 | 4 | 2017q4 | 11.0717 | 0.311 |
| 000008.SZ | 神州高铁 | 2018 | 1 | 2018q1 | 0.1653 | 0.0037 |
| 000008.SZ | 神州高铁 | 2018 | 2 | 2018q2 | 1.0613 | 0.0218 |
| 000008.SZ | 神州高铁 | 2018 | 3 | 2018q3 | 2.0959 | 0.0439 |
| 000008.SZ | 神州高铁 | 2018 | 4 | 2018q4 | 4.6568 | 0.116 |
| 000009.SZ | 中国宝安 | 2017 | 1 | 2017q1 | 0.8867 | 0.0156 |
| 000009.SZ | 中国宝安 | 2017 | 2 | 2017q2 | 1.9046 | 0.0373 |
| 000009.SZ | 中国宝安 | 2017 | 3 | 2017q3 | 3.2742 | 0.084 |
| 000009.SZ | 中国宝安 | 2017 | 4 | 2017q4 | 3.2633 | 0.06 |
| 000009.SZ | 中国宝安 | 2018 | 1 | 2018q1 | 0.8182 | 0.0164 |
| 000009.SZ | 中国宝安 | 2018 | 2 | 2018q2 | 2.0646 | 0.0535 |
| 000009.SZ | 中国宝安 | 2018 | 3 | 2018q3 | 2.4971 | 0.0459 |
| 000009.SZ | 中国宝安 | 2018 | 4 | 2018q4 | 5.177 | 0.1 |
| 000010.SZ | *ST美丽 | 2017 | 1 | 2017q1 | -0.2998 | -0.0311 |
| 000010.SZ | *ST美丽 | 2017 | 2 | 2017q2 | -0.6015 | -0.0556 |
| 000010.SZ | *ST美丽 | 2017 | 3 | 2017q3 | 1.8167 | 0.0155 |
| 000010.SZ | *ST美丽 | 2017 | 4 | 2017q4 | -25.7197 | -1.2947 |
| 000010.SZ | *ST美丽 | 2018 | 1 | 2018q1 | -1.1499 | -0.0568 |
| 000010.SZ | *ST美丽 | 2018 | 2 | 2018q2 | -2.1541 | -0.1037 |
| 000010.SZ | *ST美丽 | 2018 | 3 | 2018q3 | -4.398 | -0.2341 |
| 000010.SZ | *ST美丽 | 2018 | 4 | 2018q4 | -20.6837 | -0.8922 |
| 000011.SZ | 深物业A | 2017 | 1 | 2017q1 | 6.0705 | 0.5061 |
| 000011.SZ | 深物业A | 2017 | 2 | 2017q2 | 7.141 | 0.6114 |
| 000011.SZ | 深物业A | 2017 | 3 | 2017q3 | 11.9953 | 0.9668 |
| 000011.SZ | 深物业A | 2017 | 4 | 2017q4 | 13.2958 | 1.0453 |
| 000011.SZ | 深物业A | 2018 | 1 | 2018q1 | 1.0147 | 0.0897 |
| 000011.SZ | 深物业A | 2018 | 2 | 2018q2 | 1.6248 | 0.1392 |
| 000011.SZ | 深物业A | 2018 | 3 | 2018q3 | 2.932 | 0.2419 |
| 000011.SZ | 深物业A | 2018 | 4 | 2018q4 | 12.8211 | 0.9945 |
| 000012.SZ | 南玻A | 2017 | 1 | 2017q1 | 1.5947 | 0.08 |
| 000012.SZ | 南玻A | 2017 | 2 | 2017q2 | 3.5332 | 0.19 |
| 000012.SZ | 南玻A | 2017 | 3 | 2017q3 | 6.0792 | 0.33 |
| 000012.SZ | 南玻A | 2017 | 4 | 2017q4 | 7.0787 | 0.35 |
| 000012.SZ | 南玻A | 2018 | 1 | 2018q1 | 1.4284 | 0.07 |
| 000012.SZ | 南玻A | 2018 | 2 | 2018q2 | 3.0003 | 0.13 |
| 000012.SZ | 南玻A | 2018 | 3 | 2018q3 | 4.3083 | 0.17 |
| 000012.SZ | 南玻A | 2018 | 4 | 2018q4 | 4.5764 | 0.16 |
| 000014.SZ | 沙河股份 | 2017 | 1 | 2017q1 | -0.2063 | -0.0167 |
| 000014.SZ | 沙河股份 | 2017 | 2 | 2017q2 | 0.4206 | 0.0196 |
| 000014.SZ | 沙河股份 | 2017 | 3 | 2017q3 | 0.6087 | 0.022 |
| 000014.SZ | 沙河股份 | 2017 | 4 | 2017q4 | 1.1106 | 0.0378 |
| 000014.SZ | 沙河股份 | 2018 | 1 | 2018q1 | 0.3137 | 0.0156 |
| 000014.SZ | 沙河股份 | 2018 | 2 | 2018q2 | 0.3906 | 0.0153 |
| 000014.SZ | 沙河股份 | 2018 | 3 | 2018q3 | 0.4898 | 0.0112 |
| 000014.SZ | 沙河股份 | 2018 | 4 | 2018q4 | 12.313 | 0.7238 |
| 000016.SZ | 深康佳A | 2017 | 1 | 2017q1 | 0.4125 | 0.0109 |
| 000016.SZ | 深康佳A | 2017 | 2 | 2017q2 | 0.7116 | 0.0128 |
| 000016.SZ | 深康佳A | 2017 | 3 | 2017q3 | 1.7113 | 0.0535 |
| 000016.SZ | 深康佳A | 2017 | 4 | 2017q4 | 34.0581 | 2.1001 |
代码公开披露
仅展示前 30 行,供了解变量构造与处理流程,完整代码请下载文件查看。
/////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////特殊年度数据转换为面板数据///////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
///更多stata学习资料尽在丘知数据分析会员之家,网址:www.qqrdata.com
* 安装命令
ssc install tidy
* 导入数据
import excel 原始年度数据.xlsx, firstrow clear
* 剔除最后两行数据
drop if 证券简称==""
* 除了证券代码和证券简称外其他所有的变量都进来
* 可以使用连字符,只要首尾两个变量放进来即可,比较简洁
gather 资产总计报告期2015年报报表类型合并报表 - 负债合计报告期2018年报报表类型合并报表
///更多stata学习资料尽在丘知数据分析会员之家,网址:www.qqrdata.com
* 提取年份
gen year = real(regexs(0)) if regexm( variable ,"([0-9]+)")
* 提取变量名
gen name = regexs(0) if regexm( variable, ".*报告期")
replace name = subinstr(name, "报告期", "", .) //把报告期替代为空
drop variable
*help subinstr(查到的解释)
/*
subinstr("this is the day","is","X",1) = "thX is the day"
subinstr("this is the hour","is","X",2) = "thX X the hour"
subinstr("this is this","is","X",.) = "thX X thX" */
* 变量转置