资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
第二章编程与矩阵基础
一、程序
(一)标准的程序文件格式
我们已经多次强烈建议大家尽量用程序来完成自己的工作。在写程序时,有一些经验写法,遵循这些写法将会提高工作效率。
*============================begin=================================
clear//相当于让STATA处于初始状态,清除所有使用过的痕迹
cdd:/stata9//设定路径,将数据、程序和输出结果文件均存入该文件夹
capturelogclose//如某输出结果文件已打开,关闭之,若不存在则忽略
logusingmyfile,replace//将运行结果存到一个输出文件myfile中
setmoreoff//在程序执行过程中,不要因为结果窗口屏幕已满而停下来
*下面开始写完成特定任务的命令,如
sysuseauto,clear
1 / 19
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
su
tabforei
logclose//关闭结果输出文件,在前面设定的文件目录中可以找到。
*============================end===================================
Log命令记录所有已执行命令或执行结果,结果文件的存贮类型有两种,一种后缀名为*.smcl,一种为*。txt,如果不指明为txt,默认为*.smcl。后面的replace选项用于覆盖原来的同名结果文件.
(二)创造自己的命令:与STATA互致问候
在写程序的过程中,如果遇到要反复调用同一段代码时,明智的选择是将这段代码写成子程序,然后直接调用子程序即可。
试一试,在命令窗口输入“hello\,会出现什么结果? hello
unrecognizedcommand
2 / 19
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除
红字告诉你,STATA无法认识这个命令。
我们可以自己创造一个叫hello的命令,当你运行这个命令的时候,STATA就会向你问好“你好,老兄!”,下面是程序。
在程序编辑器内键入以下内容并执行之
*============================begin================================= captureprogramdrophello programhello
di“你好,老兄”//请注意引号一定要在英文半角状态下输入 end hello
*============================end=================================== *然后在命令窗口键入 hello
*STATA将在结果窗口显示出 *你好,老兄
*我们来做做其他工作,然后再次调用该命令hello,看灵还是不灵. lmakepricein1/5 hello
这个命令居然像describ或者list一样!是的,这是一个名为hello的命令,一旦该程序被读入内存(即被执行一次),只要你不退出stata或者删除该程序(programdrophello),他就随时待命,你可以像用其他命令一样来使用它。 那么如果我们退出stata后还想执行这个程序,怎么办呢?你可以把两条红线之间的这个文件存起来,最好是存在STATA的默认路径下,文件名为hello。do(注意后缀为。do),退出STATA并重启,在命令窗口输入命令 dohello 则输出结果:
“你好,老兄”
2 / 19