发布日期:2024-10-21 10:17 点击次数:77
二、数据清洗代码肛交 准备
指定使命目次
cd 文献地址 //cd是change directory的缩写,将刻下使命目次篡改为指定的目次,要是数据齐在该旅途下,背面的代码就不错使用数据的相对旅途而无谓有余旅途掀开日记文献并更新
log using 文献名.log,replace //日记文献会记载总共代码运转的效劳
导入数据
*导入excel方法文献import excel using 文献名.xlsx,firstrow clear //文献名.xlsx便是相对旅途,前边莫得cd的话,就要用文献名.xlsx的齐备文献地址,像这么:'C:\Users\10405\Desktop\文献名.xlsx'*导入txt方法文献insheet using 文献名.txt,clear*导入csv方法文献import delimited 文献名.csv, clear*导入stata方法文献use 文献名.dta,clear*导入系统数据sysuse 文献名.data删除行
drop in 1/n //删除前n行drop in n //删除第n行
给变量贴标签
label var id 股票代码 //id的标签是股票代码变量定名
*单个定名rename 股票代码 id //将股票代码改为id*批量定名rename (var1 var2 var3)(newvar1 newvar2 newvar3)
N瓜分
*高歌一:egen type = cut(Var), group(N) //将变量Var从小到大分N类生成变量type*高歌二:sort Var //升序排序generate type = group(N)*高歌三:xtile Newvar = Var, nq(N) //将变量Var从小到大分N类生成变量Newvar*按照年份概略行业生成瓜分bys year: egen Newvar=xtile(Var), nq(N)生成变量
gen Var=0 //生成值均为0的变量Vargen Varnew=Var1+Var2 //求两个变量之和gen newvar=L.var //生成滞后变量gen newvar=F.var //生成前置变量gen newvar=abs(Var) //务有余值egen Varmax=max(Var) //求最大值egen Varmin=min(Var) //求最小值egen Varmean=mean(Var) //求平均值egen Varmedian=median(Var) //求中位数egen Varsd=sd(Var) //求门径差egen Var50=pctile(Var),p(50) //求二分位数egen Var25=pctile(Var),p(25) //求四分位数egen y=rowtotal(x*) //对总共X起首的变量乞降
生成造谣变量
tab var,gen(newvar)生成年份变量
*年份方法为字符串型,如20170407gen year=real(substr(年份,1,4)) //索求年份字符串中的前四位 gen month=real(substr(年份,6,2)) //索求年份字符串中的后两位 drop if month!=12 //剔除年份不所以12月份收尾的数据*年份方法为07apr2017型gen y=yofd(DateJoined)*年份方法为07/04/2017gen year=real(substr(年份,-4,.)) //索求后四位字符
生成行业造谣变量
tab Industry,gen(Indu) //生成行业造谣变量,为了幸免共线性,stata会自动删掉一个造谣变量 *有些文献会单独把制造业的细分行业也生成造谣变量,就需要把前两个字符索求出来,然后再生成行业造谣变量gen Indu=Industryreplace Indu = substr(Industry,1,1) if substr(Industry,1,1)!='C'replace Indu = substr(Industry,1,2) if substr(Industry,1,1)=='C'encode industry,gen(indu)取对数与归附对数
gen lnX=log(X) //取对数形式gen X=exp(lnX) //归附对数形式策画除本公司外特定年份里行业其他样本的均值肛交 准备
sort year industrybys year industry: egen sumX=sum(X) //策画X总数bys year industry: gen N=_N // 策画不雅测值gen OtherX=(sumX-X)/(N-1)判断字符串有莫得包含特定字符
keep if strmatch(var, '*数字化*') //保留变量var中包含“数字化”的数据稽查变量缺失情况
misstable sum var1 var2 var3删除空白值
drop if missing(var1)删除变量
drop Var1 Var2 //删除变量Var1和Var2keep Var1 Var2 //只保留变量Var1和Var2有条目的删除数据
drop if year <2007 //暗意删除年份小于2007的数据drop if id =='10' //暗意删除id为10的数据删除类似的数据
勾引duplicates drop id year,force // 删除id与year类似的数据长入各变量的不雅测数目
egen miss=rmiss(var1 var2 var3) keep if miss==0 //这个操作不错使各变量的不雅测数目保执长入补缺失值
*单个变量补缺失值replace var=某个数值 if var==.*多个变量同期补缺失值foreach i in var1 var2 var3 {replace `i'=0 if `i'==.} *将总共缺失值替换为0mvencode _all, mv(0) override剔除ST/*ST/PT的样本
drop if strmatch(Coname,'*ST*')drop if strmatch(Coname,'*PT*')剔除B股企业
gen B=0replace B=1 if strmatch(shortname,'*B*') //朦胧匹配,当公司称号含有B时,把B的0值替换为1drop if B==1 //剔除B值为1的数据
剔除金融类企业
drop if strmatch(industry,'*J*')
稽查行业变更的公司
encode industry,gen(indu) bysort id: egen indumean = mean(indu)keep if indu != indumean
数据类型的调度
destring Var,replace //将字符串变量调度为数值变量tostring var,replace //将字符串变量调度为字符串变量destring var,replace force //将字符串变量调度为数值变量,要是任何字符串值看起来不是数值,则将它们调度为缺失值encode var, gen(var1) //字符串变量调度为数值变量decode **var1**, gen(var) //带标签的分类变量调度为字符串变量format var .3f //将var的列宽固定为10,少许点后取三位
生成残差
predict e,residual //在总结后用该代码可生成残差
吞并数据
*横向吞并merge 1:1 id year using 文献名.dta //将一个数据聚积并到现存数据集的右侧,1:1指的是1对1匹配,1:m为1对多匹配,m:1为多对1匹配;id year 对应的是匹配变量,id是股票代码,year是年份;“文献名.dta”是匹配数据的称号。drop if _merge!=3 //剔除莫得匹配上的数据drop _merge //剔除_merge*纵向吞并append using 文献名.dta //将一个数据聚积并到现存数据集的末尾,两个数据集频繁具有或部分具有相易的变量
缩尾与截尾
*缩尾不停winsor2 Var, replace cuts(1 99)//winsor2默许在盘曲1%的水平上缩尾,小于1%百分位数的数值会被1%分位数替代,99%同理;replace背面的cuts(1 99)不错不祥,也不错对缩尾的盘曲限作念养息;replace的趣味趣味是不改变原变量称号;*截尾不停winsor2 Var, replace cuts(1 99) trim //将小于1%百分位数和大于99%百分位数的数值替换为缺失值.*不错在replace背面加by(year)概略by(industry),按照年份概略行业来缩尾/截尾变量排序
order id year // 数据按照id,year的王法陈设order id year x* //*暗意x起首的变量按照王法陈设
数据排序
*升序陈设sort Varsort id year //从小到大排序,先按id排序,再按year排序*降序陈设gsort Var声明面板数据
xtset id year概略tsset id year稽查数据
codebook //显现变量数值分歧情况inspect var //在codebook高歌的基础上进一步绘图出直方图sum Var //形容性统计by byvars: sum var //按照分组对变量进行综合tab Var //变量频数des Var //文书变量存储的类型、方法和标签list Var if Var>0 //显现自高Var>0的数据duplicates list var //列出类似数据走势图
collapse (mean) Var, by(year) line Var year, ytitle('Y轴称号')保存/导出数据
*导出sata方法save 文献名.dta, replace*导出excel方法export excel 文献名.xlsx, firstrow(var) replace*导出csv方法export delimited using '文献名', replace关闭日记文献
log close其他可能用到的功能
*运转代码快捷键Ctrl + D //选中代码,同期按Ctrl + D键*计数count if var==0 //策画var等于0的个数*瞩目代码后加//,//背面不错添加瞩目,不影响代码运转*代码换行代码后加///✦点击下方关心南博吉吉✦肛交 准备
本站仅提供存储处事,总共现实均由用户发布,如发现存害或侵权现实,请点击举报。