stata实现 国泰安原始数据处理 教程和代码

  1. 批量设定标签

import excel "PT_LCDOMFORAPPLY.xlsx", first clear

labone, nrow(1 2) concat("_")  // 此命令表示将原数据的一二行作为变量标签,并用下划线连接 

drop in 1/2                    // 删除一二行的文字 

destring _all, replace         // 把一些原来被识别为文本类型的变量转换为数值型 

  1. 年度变量的转换

gen year = = substr(EndDate, 1, 4)  //从变量EndDate值的第一位开始计数,提取前面四个字符

destring year, replace  //把提取出来的文本变量转换为数值型变量

  1. 快速实现表格合并
    • ‘merge’的横向合并
      1. 注意事项

master 表与 using 表均为 dta 格式

变量名称要保持一致

变量类型要保持一致

实操案例:

/* 资产负债表 */ 

clear 

input long stkcd int year double(asset liability) 

726 2009   6303066959.6 2115429187.87 

726 2010 7015883263.33 2274286167.32 

726 2011 7751885340.43 2281977783.93 

726 2012 8153279084.33 2498587064.52 

726 2013 8411948561.49 1997348584.08 

726 2014 8627671393.88 1611240808.7 

726 2015 9091170499.22 1814572869.22 

726 2016 9407103263.34 1994029422.98 

726 2017 10170624027.75 2395548537.95 

726 2018 10537759811.84 2811935096.45 

end 

/* 利润表 */ 

clear 

input long stkcd int year double(revenue netprofit) 

726 2009 4036219837.13 603736257.96 

726 2010 5025624126.3 815053109.96 

726 2011 6078659406.75 892071216.41 

726 2012 5901049894.02 715850368.75 

726 2013 6478245029.16 1039811812.78 

726 2014 6169688792.53 979377181.57 

726 2015 6173322778.61 735543028.77 

726 2016 5981751344.63 853073450.12 

726 2017 6409224044.97   883319109.6 

726 2018 6879058813.93   858193572.1 

end 

use balancesheet.dta, clear 

merge 1:1 stkcd year using incstatement.dta 

  Result                           # of obs. 

  not matched                             0 

  matched                               646 (_merge==3) 

巧用循环实现批量合并

use balancesheet.dta, clear 

foreach v in incstatement shareholders{ 

        merge 1:1 stkcd year using `v'.dta 

        drop if _merge != 3 

        drop _merge 

  • append’的纵向合并

    • 注意事项 保持两表变量名一致

合并实例

forvalues i = 2009/2020{ 

        use balancesheet.dta, clear 

        keep if year == `i' 

        save temp_`i'.dta, replace 

}  //把资产负债表当中每一年的数据都拆分出来并分别保存为以 " temp_2009、 temp_2010 ... temp_2010" 命名的 dta 文件

use temp_2009.dta, clear 

        forvalues i = 2010/2020{ 

        append using temp_`i'.dta 

}  //得到追加完成样本后的数据,使用save命令进行保存即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是章汕呐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值