第六讲--stata程序管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第六讲stata程序编写与管理第一种方法:直接写dofile打开do编辑器:doedit一个简单的dofiledisplay“hello,world”exit//告诉stata在这程序结束,exit可不写保存为hello.do在command窗口输入dohellostata会显示display“hello,world”hello,world第二种:在stata窗口中输入stata显示:programhello1.display”hello,world“2.end执行:hello显示:hello,world将hello,world修改为hello,cufeprogramhellohelloalreadydefinedr(110)解决方法:programdrophello注意,program名不能与stata中的命令名一致programdesdisplay”hello,world“end第二种:在stata窗口中输入programhellodisplayhello,cufeend查找语法错误:settraceon关闭该功能:settraceoff第三种:dofile中的programprogramhellodisplay“hello,world”endstata中输入:dohellostata显示:helloalreadydefinedr(110)stata输入:programdrophellodohello//或用runhellohello第四种:dofile的扩展programhellodis“hello,world”endhelloexit如果加上programdrophello解决方法:capture第五种:adofileadofile是stata中的可执行文件programhellodis“hello,world”endexit执行时输入:programdrophellohellostata显示:hello,worldadofile的保存地址adofile只有放在指定的文件夹中才能运行adopath命令adopath+c:\ado\personal//增加新的adofile存放地址adopath-c:\ado\personal//移除adofile目录注意:可以将自己的程序统一存放于D:\stata\ado\personal\myado同时在profile.do文件中做如下定义adopath+D:\stata\ado\personal\myado该文件夹下可以进一步设定a-z的子文件夹一个完整的dofile文件capturelogclose//检查log的状态为closelogusingx,replace//打开logxsetmoreoffcaptureprogramdrophelloprogramhellodis“hello,world”endlogclose//关闭logexit//保存为sj.dodofile的引用dosjexit//保存为sj2.dodosj2assert的用法assert是stata的重要命令,如果assert后的表达式为true,则stata继续执行命令,否则stata会提示出错captureprogramdropsj2sysuseauto,clearassertforeign2exit//保存为sj2.dopreserve的用法preserve可以避免数据在程序执行后有所变动sysuseauto,clearpreserve//备份当前状态S1dropifprice10000sumsavenauto,replacerestore//恢复到状态S1sumusenauto,clearquietly的用法quietly可以避免列印过多的结果比较两段代码captureprogramdropsjprogramsjsysuseauto,cleardropifprice1000savenauto,replaceendcaptureprogramdropsjprogramsjsysuseauto,clearquietlydropifprice1000savenauto,replaceend单值Scalar存放数值scalara=3scalarb=ln(a)+5disadisb存放字符串scalarc=.adiscscalars1=“hello,world”scalars2=substr(s1,1,5)diss1diss2执行命令后的单值结果sysuseauto,clearsumpricereturnlistdisr(N)scalarrange=r(max)-r(min)disrangegenqq=r(sd)listqqin1/10单值管理scalardirscalarlist//显示单值的内容scalardropa//删除单值scalarlistscalardropall//删除所有单值scalarlist暂元变量localmacrolocal:在一个do或adofile中发挥作用暂元的定义与引用存放数字locala=5dis`a’localb=`a’+7dis`b’存放文字localname1“sj:”dis“`name1’”localname2“中央财经大学会计学院”dis“`name2’”localname3`name1’`name2’dis“`name3’”存放变量名称sysuseauto,clearlocalvarllistpriceweightsum`varlist’Local:数学运算符的处理locala“2+2”dis`a’dis“`a’”//看这两个有何区别localb=2+2//注意与a的定义的区别dis`b’dis“`b’”暂元中的暂元locala1=2locala2“var”locala3=2*`a1’locala4`a`a1’’local`a2’`a1’=2*`a3’dis`a1’dis“`a2’”dis`a3’dis“`a4’”全局暂元globalmacro:定义与引用方式全局暂元:在整个stata运行的过程中一直存在定义与引用方式:globalaa“Thisismyfirstprogram!”dis“$aa”globalx1=5globalx2=2^$x1dis$x2示例:sysuesauto,clearglobaloption“,robust”globalreg“regress”localx1“pricempgforeign”$regrep78`x1’$optionlocalx2“pricempgforeigntrunk”$regrep78`x1’$option$regrep78`x2’$option暂元的管理macrolistmacrodirmacrodropx2macrodirx2macrodiraa暂时性变量tempvarsysuseauto,cleartempvarx1x2gen`x1’=price*2gen`x2’=ln(rep78)sum`x1’`x2’暂时性变量可以与永久变量同名循环语句while语句forvalues语句foreach语句条件循环语句:whilelocalj=0while`j’5{disa[`j’]localj=`j’+1}循环语句:forvalueslocali=1localj=_Nforvaluesi=1(1)`j’{disa[`I’]}forvaluesi=0(-1)-14{disa[`i’]}forvalues应用示例假设你有100个文件,分别为d1.dta,d2.dta,…d100.dta研究要求将这100个文件做纵向合并,写出程序used1.dta,clearlocali=2forvaluesi=2(1)100{appendusingd`i’.dta}savefinaldata,replace循环语句:foreachforeachvarofvarlistxyz{command}示例1:将auto.dta各变量的对数转换和缩尾处理sysuseauto,clearlocalvarspriceweightlengthforeachvofvarlist`vars’{genln`v’=ln(`v’)winsor`v’,gen(`v’w)p(0.01)}条件语句:if语法格式格式1if(条件){command}格式2if(条件1){command1}elseif(条件2){//这里可以没有ifcommand2}条件语句:if示例scalaraa=1ifaa==1{dis“这小子真帅!”}elseifaa==0{dis“这女孩真亮!”}引用stata命令的返回值留存在内存中的结果r-class,与模型估计无关的命令,如sume-class,与模型估计有关的命令,如regresss-class,其他命令,如listc-class,存储系统参数显示留存值的方法r-class:returnliste-class:ereturnlists-class:sreturnlistc-class:creturnlist留存值分为四种类型:单值:如r(mean),r(max),r(N),e(r2),e(F)矩阵:如e(b),e(V)暂元:如e(cmd),e(depvar)函变量:如e(sample)

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功