display 命令display “1+1”输出为1+1display 1+1 输出为2set mem设置内存set mem 500m,perm 设置内存为500mset matsize 500 设置matsize为500query memory 查看内存设置保留和删除变量keep & dropdrop crcd repttype 删除crcd repttypekeep stkcd stknme nindcd nnindcd 保留stkcd stknme nindcd nindcd (注意命令的大小写)save保存stata格式的数据save “D:\Teach课件\STATA\data\CG_Co.dta “新建文件名save “D:\Teach课件\STATA\data\CG_Co.dta ”,replace 重置已有文件use&insheet usinguse 打开dta文件,insheet using打开csv文件gen生成的新的变量gen tdate=date(accper,"YMD") 产生一个tdate变量用来存放从accper变量中提取的年月日format tdate %d 设置tdate为整数型变量gen year=year(tdate) 提取tdate里面的年份存为year变量gen month=month(tdate) 提取tdate里面的月份存为month变量if条件句&tab离散变量的频率keep if month==12 如保留变量month等于12的数据(注意双等号)tab year 画出变量year的离散频率纵向添加数据appenduse TRD_Year2011.dta,clear 打开2011的数据文件append using TRD_Year2012.dta 向2011的数据文件中纵向加入2012的数据文件*注意2012内的文件变数量与变数名必须相同,若不同,用keep或drop 保留或删除merge文件合并use TRD_Year2011_2012.dta,clear 打开该数据文件sort stkcd year 排列一下要合并文件内的数据顺序stkcd和year均为变量名save TRD_Year2011_2012.dta,replace 排列后重新储存该数据文件use FS_Combas.dta,clear 打开要合并的数据文件sort stkcd year 同样排列一下要合并的数据顺序merge 1:1 stkcd year using TRD_Year2011_2012.dta 合并该文件(FS_Combas)和上一文件(TRD_Year2011_2012)内的stkcd和year两个变量save bas_TRD,replace 排列后要记得储存do文件用法(这个练习一下,别考试的时候慌了,没保存考试成绩就没了哦)将字符型转换成数字型或相反destring & tostringtostring year, gen(yearstr) 新建一个变量yearstr用来储存转换为字符形的yeardestring yearstr, gen(yearnum) 新建一个变量yearnum用来储存转换为字符形的yearbr yearstr yearnum 用列表形式查看变量yearstr和yearnum压缩数据空间compressgen new=1 新建一个等于1的变量newdes new 查看变量new的数据类型(为double双精度型长度为8bytes)compress new 压缩变量newdes new 再次查看new的数据类型(为byte字符型长度为1bytes)存储类型• %9.0g:一般格式–共占九位(右起),不指定小数点位。
•%-9.0g:一般格式–共占九位(左起),,不指定小数点位。
•%9.2f:固定格式–共占九位,指定小数点后面保留两位。
•%10.7e–科学计数法,共10位,E后面占7位。
list a001000000 in 1/8 列出a001000000里的个数据format a001000000 %20.0g 取a001000000中所有数据的后20位数format a001000000 %-20.2f 取a001000000中所有数据的20位数其中小数点要取后两位确定样本期间keep if year>=2006 取已打开文件内的的所有变量year大于等于2006的样本生成哑变量gen duality=0 建立变量duality并且等于0replace duality=1 if y1001b==1 若变量y1001b等于1则duality等于1(这样变量duality不等于1 便等于0,因此它是哑变量)保存命令的结果returnsum top1,d 建立top1的概括统计量(d的意思是详细的显示出来)return list 建立的统计量会保存在r()里,这个语句可查看所有的统计量gen top1_d2=0 建立哑变量top1_d2并设为0replace top1_d2=1 if top1>r(p50) & top1!=. 如果top1大于s统计量的50百分位并且top1不为空的话,将top1_d2置1 tab top1_d2 显示top1_d2的离散频率从字符变量里提取信息substr:ex)生成行业变量:capture drop indu 删除变量indu(capture是为了让dofile继续执行,没有特殊含义)gen indu=substr(nindcd,2,4) 从nindcd字符串的第二位开始提取4位字符,将提取的字符存在名为indu的变量内replace indu=substr(nindcd,1,2) if indu=="C" 如果indu等于大写的C那么indu的值为nindcd里面的第1位到第2位tab nindcd 查看nindcdtab indu 查看induegen为gen的拓展by year,sort: egen topmedian=median(top1) 建立一个变量名为topmedian的变量用来存放top1的中值并按year排序生成分类变量autocode & xtile:gen topone_categ1=autocode(top1,10,0,1) 从top1里面取大于0小于1的10个数据,存在topone_categ1里面xtile topone_categ2=top1, nquantiles(10) 将top1里面的数据按个数分为10组,并存在topone_categ2里排序变量sort & gsort:sort yclsprc 从小到大排序yclsprcsort year yclsprc 从小到大排序year和yclsprcgsort +yclsprc 从小到大排序yclsprcgsort +year –yclsprc 从小到大排序year 从大到小排序yclsprcgsort year indu –ROA 排序by year indu ,sort:gen indu_num1=_n 建立变量indu_num1来存放每组indu的序号(这里year和indu的顺序换一下的话,indu_num1就变成了每组year的序号)by year indu ,sort:gen indu_num2=_N 建立变量indu_num2来存放每组indu的总个数br year indu ROA indu_num1 indu_num2 用列表显示year indu ROA indu_num1 indu_num2删除重复值:sort stkcd year 排序drop if stkcd==stkcd[_n-1] & year==year[_n-1] 如果stkcd并且year有重复的话删除计算业绩波动sort stkcd year 排序gen roa_l1=ROA[_n-1] if stkcd==stkcd[_n-1] 如果stkcd的值与上一个栏相同,那么将该上一栏重复值对应的ROA值存入新建变量roa_|1gen roa_l2=ROA[_n-2] if stkcd==stkcd[_n-2] 如果s t k c d的值与上两栏相同,那么将该上两栏重复值对应的ROA值存入新建变量roa_|1egen roasd=rowsd(roa_l1 roa_l2 ROA 将(roa_l1)(roa_l2)(ROA)的方差存在roasd里面检查数据是否有异常sumsum ROA ROE EPS TOPINQ MB top1 sep inddir lev duality size statesum ROA ROE EPS TOPINQ MB top1 sep inddir lev duality size state,d处理异常值winsor ROA, gen(ROA1) h(10) 新建一个ROA1来储存处理后的ROAwinsor ROA, gen(ROA2) p(0.01)winsor ROA, gen(ROA3) p(0.01) highonlysum ROA1 ROA2 ROA3,d这是help对p(),h()一类的描述,注意gen()是必须的,并且p()内的值必须在0到0.5之间,h()内的值必须大于1但要小于检测到错误值数量的一半,也就是之前sum检测到的错误值数量。
筛选样本、交待选择过程gen n=0 新建变量n等于0replace n=1 if indu=="I" 将所有indu内部等于大写I的值对应的n都设为1egen dum=rmiss(ROA ROE EPS TOPINQ MB top1 sep inddir lev duality size state)dum表示以上这些变量的同一行中缺失值的个数replace n=2 if dum!=0 如果缺失值不为0那么将n置2tab year n 按年份显示n的值tab indu n 按indu来显示n的值贴标签label data "股权结构与公司业绩" 就是在变量后面附上说明label var ROA "资产收益率"log 文件开启,关闭,储存描述统计sum top1 top1的统计量sum top1,d top1统计量的详细显示sum top1 state top1和state的统计量summarize _all 已打开文件内所有数据的统计量sum top1 if year==2010 2010年的top1的统计量by year,sort: sum top1 按year的顺序排练top1的统计量by state,sort: sum top1 按state的顺序排列top1的统计量&表示且,and;|表示或,or;==代示恒等于,!=代示不等于离散变量的频率统计tab state 显示state的离散表格tab state if year==2010 显示year为2012的state的离散表格by year, sort: tab state 按year的顺序显示state的离散表格tab state top1_d,col 显示top1和state的离散表格并显示纵列的频率tab state top1_d,row 显示top1和state的离散表格并显示横排的频率报告分位数及其置信区间centilecentile 显示已打开文件内部所有变量的置信空间和百分位centile top1 显示top1的置信空间和百分位centile top1, centile(5 50 95) 显示top1第5个百分位,第50个百分位和第95个百分位的置信空间centile top1, centile(20(10)90) 显示top1第20个,第30个,第40个。