CSMAR数据库,相信很多金融、财会背景的朋友非常熟悉。本文的目的旨在帮助大家梳理CSMAR数据库常用的数据处理技巧,以飨读者。
1、如果我们的下载的格式是excel的话,那么我们可以使用如下的格式导入进Stata:
import excel using \path\file.xls,clear first
如果是股票价格或收益率数据,CSMAR通常会以多个excel的格式存取,通常来讲下载下来的变量名分别为:file,file1,file2...
我们可以采用如下的命令来批量读入:
forvalue i=1(1)n{
import excel using \path\file`i'.xls,clear first
save data`i',replace
}
import excel using \path\file.xls,clear first
save data,clear
use data,clear
forvalue i=1(1)n{
append using data`i'
}
save data,replace
2、财务数据变量的删减
(1)保留A股
A股股票的代码为0(深市A股、中小板)、6(沪市A股)、3(创业板)。
(2)提取年份\保留年报
gen year=real(substr(Accper,1,4))
gen month=real(substr(Accper,6,2))
大部分情况下,我们仅需要年度的财务指标。
keep if year==12
(3)保留合并报表(我们通常不需要母公司报表)
(4)缺失值处理
删除缺失值:drop if missing(var1 var2 var3 var4)
把缺失值处理成0:
foreach v of varlist var1 var2 var3 var4{
replace `v'=0 if `v'==.
}
(5)对主要的变量进行winsor处理
我们可以首先下载winsor2,ssc install winsor2
以1%截尾为例:winsor2 var1 var2 var3 var4, cut(1,99)
(6)批量命名变量
rename (a b c d) (var1 var2 var3 var4)
3、各个数据文件的匹配
通常来讲我们使用股票代码(stkcd)和(year)来匹配各个数据文件,假定我们有 a b c d e五个数据集,那么匹配的命令为:
use a,clear
foreach file in b c d e{
merge 1:1 stkcd year using `file'
drop _m
}
save newdata,replace
4、回归结果的导出
可以参见,我们之前的文章(stata技巧 | 如何优雅地做个回归?)。
后台不断有读者索要公众号推文Stata程序,考虑到人力有限,很难面面俱到。不妨请我们喝杯咖啡,我们也把先前的程序批量整理,统一发送。
先前包含Stata程序的文章有:
原文链接为我们的微店,所有Stata程序均已打包,售价为50元。如果您有意索要程序(codes为付款日以前所有的Stata程序),请在微店内付款,并留下您的邮箱地址。我们会在付款后的24小时内将程序发到您的邮箱。
联系客服