资源描述
字符变量的处理字符变量转换为数值变量数值变量转换为字符变量字符变量的分解重要的字符处理函数字符变量转换为数值变量1从文本文档中读入的数值变量可能以字符变量的方式存储变量中可能包含了特殊符号,如金额$、逗号,、斜线/、百分比%、破折号-等字符变量转换为数值变量2数值观测偶尔误存为字符观测:destring例:destring year date size lev,replace ignore(-/,%“)例:destring code,gen(code2)ignore(“-/,%“)字符变量转换为数值变量3如果没有特殊符号:real()例:gen code2=real(code)字符变量转换为数值变量4数值观测全部存为字符观测:encode例:encode code,gen(code2)该命令自动产生“数字-文字对应表”,命令labelbook查看数值变量转换为字符变量1命令:命令:tostring例:tostring year month day,replace例:tostring year,gen(year2)数值变量转换为字符变量2函数:函数:string()例:gen year2=string(year)字符变量的分解与合成分解命令:split xxx,parse(x)例:split date,parse(-)合成:+例:gen a=b+c例:di “I am”+“a teacher”重要的字符处理函数求助:help function最重要:substr()例:gen year=substr(date,1,4)注意:每个英文字母占一位,但每个中文字符占两位字符匹配函数:strmatch()例:gen a=strmatch(ind,“C”)变量创建的技巧_n与_N虚拟变量的产生 交互项的产生egen命令_n与_N_n:样本序号变量,是一个变量,内容为1,2,3,.,n_N:样本数指标,是一个单值,内容为样本数_n是一个永远存在,但却不能list出来的特殊变量_n的取值会随样本排序的变化而变化产生滞后项:gen lagsales=sales _n-1产生前导项:gen lagsales=sales _n+1产生最后一项:gen msales=sales _N差分:gen dsales=sales-sales _n-1增长率:gen gsales=(sales-sales _n-1)/sales _n-1表示是否为第一/最后一项:if _n=1 /if _N=1时间序列/面板数据的滞后项、差分、增长率tsset code yeargen lagsales=l.salesgen dsales=d.salesgen gsales=d.sales/l.sales其他:f.sales l2.sales f2.sales d2.sales分组进行:bysort ind:gen a=_nbysort ind:keep if _n=1bysort ind:keep if _N=1虚拟变量的产生使用-generate-和-replace-产生虚拟变量gen hsize=1 if size1000000&size.replace hsize=0 if size50,1,0,.)交互项的产生基本方法:generate例:gen jh=state*size因子变量的应用:i.c.#(help fvvarlist)reg roa state lev size reg roa state lev size c.lev#c.size (reg roa state c.lev#c.size)reg roa state lev i.state#c.lev size (reg roa i.state#c.lev size)reg roa state lev nsize c.lev#i.nsizeegen命令egen与gen的差异gen s1=sum(sales)累加egen s2=sum(sales)总体加总gen a1=(b+c)/2egen a2=rmean(b c)产生各种统计参数egen m=median(sales)/sd()mean()min()max()count()bysort ind:egen m=median(sales)egen m=meidan(sales),by(ind)资料的合并与追加横向合并:merge例:merge 1:1 code year using x例:merge 1:m code using x例:merge m:1 code using x纵向追加:append例:append using x分位数命令pctile:产生分位数,不能与by连用例:pctile x=size,nq(10)例:pctile x=size,nq(10)gen(y)命令xtile:产生所属组别,不能与by连用例:xtile x=size,nq(10)函数pctile()与xtile(),可以与by或bysort连用例:bysort year:egen x=pctile(size),nq(10)例:bysort year:egen x=xtile(size),nq(10)离群值的处理离群值的查找:adjacent缩尾处理(winsorizing):winsor截尾处理(truncating)例:_pctile roa,percentile(1 99)drop if roar(r2)时间序列数据声明时间序列:tsset检查是否有断点:tsreport,report填充缺漏的日期:tsfill追加样本:tsappend,add(#)日期变量的处理:help dates_and_times面板数据面板数据的声明:xtset重复值的查验与删除查验:duplicatesreportcode year删除:duplicatesdrop code year,force面板资料的基本描述:xtdes xtpattern统计公司数目:panels code产生连续的公司代码:-egen-group(code)处理为平行面板:xtbalance例:xtbalance,range(2000 2008)例:xtbalance,range(2000 2008)miss(size lev roa .)练习把字符变量(日期date)分解为数值变量:年year、月month、日day根据年/月/日(年/月或年/季)生成日期变量生成新的证监会行业分类变量:制造业以前2个代码标识,其他行业以第1个代码标识计算样本中的公司家数留下每一年中每一行业的最大的一家公司生成行业中位数调整的ROA bysort csrc_w:egen roa_c=median(roa)生成以3年ROA标准差度量的经营风险变量根据最终控制人性质生产国有产权虚拟变量state学习在回归中使用交互项从CSMAR中下载财务数据、公司治理数据与基本信息数据,并合并这些数据将样本按规模大小分为5组并生成分组变量按ROA的1%与99%分位数进行winsorizing 和truncating练习日期变量的生成与转换练习面板数据的基本描述、重复值的查验与删除、处理为平衡数据
展开阅读全文