计算机编程STATA,Stata的编程基础.pdf

Stata的编程基础.pdf

Stata 的编程基础

基本概念

如果我们需要反复执行一些命令,就可以将相关命

令存放在一个do文件中,然后保存并运行相应的do

文件即可。相比起一遍一遍地输入命令,这种方式

既方便又不容易出错。而另一些时候,我们会需要

编写程序,从而能用一个命令来实现某种结果。

一个程序应以program开头,以end结束。也就是说,

应呈现如下的形式:

program 程序名

相应的命令

end

1 Do文件

do文件是一种文本文件,其扩展名为“.do”。

要创建一个do文件,可以通过菜单栏中

Window 的下拉选项Do-file Editor来打开Do文件

编辑器,也可以直接点击工具栏的图标 。而

要执行一个do文件,可以键入以下命令:

do filename

这里,filename指相应的do文件的文件名。但

需要注意的一点是,这个filename.do文件需要

放在当前目录下,只有这样,才可以不写文件

的路径;否则,需要在文件名前写出完整路径

(而如果路径中有中文字符,一定要将全部路

径和文件名置于英文双引号之间)。

要查看当前目录,我们可输入命令:

cd

当然,我们也可以先将当前目录更改到我

们偏好的一个文件夹下,然后再将do文件

存放其中。例如,如下命令可以将当前目

录更改到d盘data文件夹下:

cd “D:\data”

这里,需要注意的一点是,cd命令要求其后

的文件夹原来就存在。

2 Stata程序和Do文件

Stata处理程序和处理do文件的方式是一样

的,包括参数的传递、结果的表达等。但

do文件和程序也存在一些小的差别。例如,

要激发一个do文件,我们需要键入“do

filename ”,而要激发一个程序,我们只需

要键入程序名称就可以。

• 例如,我们编写了一个简单的程序:

• program panel

• use panel_n51,clear

• xtsum(gap)

• end

• 并把它保存到名为“examp.do ”的文件中,且

把文件置于当前目录下。下面,我们要执行这

个do文件,就在Stata命令窗口输入如下的命令:

• do examp

• panel

• 在随后的时间里,我们如果还想运行同样的程

序,直接输入命令 “panel”就可以。

• 当然,我们也可采取一种更为简洁的方式,

即在do文件的最后一行加上程序名,这样,

当键入“do filename ”的时候,Stata就会在

加载完程序后就执行程序。但需要注意的

是,程序一旦被定义,Stata就不允许对其

重新定义。这样,如果我们随后又输入一

遍“do filename ”,Stata就会显示错误提示。

要解决这个问题,我们可以在do文件的第

一行输入这样的命令:

• program drop 程序名

• 这样,在定义该程序之前,如果内存中已有这

个程序,我们会先将其从内存中删掉。但这种

解决方案也存在一个问题:在打开Stata 的期间

第一次运行这个do文件,Stata会显示错误提示。

因为这时还没有定义程序,所有没有办法将其

删除。我们继续修正该命令为:

• capture program drop 文件名

• 将命令“capture ”置于其他命令之前,就表示

无论该命令是否作用,Stata也不显示错误提示,

且能继续执行下面的命令。事实上,在包含程

序的do文件中,我们经常可以看到程序的定义

之前有这样的命令。

• 综合了以上几点,我们前面的do文件可以修改

为这样的形式:

• capture program drop panel

• program panel

• use panel_n51,clear

• xtsum(gap)

• end

• panel

• 这里,第一行先检查是否有已定义的panel程

序,如果有就将其从内存中删除。第二到四行

是定义程序panel,最后一行是执行程序panel。

• 对于do文件中的命令,值得注意的是,每一行命令

都需要结束于一个硬回车(包括最后一行);除非

通过“#delimit ”命令设置其他符号为

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值