Stata的编程基础.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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)

cai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档