CSMAR数据库,相信很多金融、财会背景的朋友非常熟悉。本文的目的旨在帮助大家梳理CSMAR数据库常用的数据处理技巧,以飨读者。
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
(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)
通常来讲我们使用股票代码(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
可以参见,我们之前的文章(stata技巧 | 如何优雅地做个回归?)。 后台不断有读者索要公众号推文Stata程序,考虑到人力有限,很难面面俱到。不妨请我们喝杯咖啡,我们也把先前的程序批量整理,统一发送。 先前包含Stata程序的文章有: 原文链接为我们的微店,所有Stata程序均已打包,售价为50元。如果您有意索要程序(codes为付款日以前所有的Stata程序),请在微店内付款,并留下您的邮箱地址。我们会在付款后的24小时内将程序发到您的邮箱。 |
|
来自: lyricLee7v7c1q > 《计量》