如何在Stata中的另一个ado文件中运行ado文件?

lok*_*art 4 stata

在R中,我可以使用另一个R脚本

source("script.R")
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Stata中做同样的事情?

Sta*_*asK 7

在Stata中,有两种类型的脚本:

  1. 有do-files,它们是你键入它们时的命令序列,它们可能包含很多东西,而且
  2. 有ado文件,它们是自包含的程序脚本.Ado代表"自动加载的DO文件".

主要的区别是执行do文件,你需要do它或run它:

do whatever.do
Run Code Online (Sandbox Code Playgroud)

显示输出,和

run whatever.do
Run Code Online (Sandbox Code Playgroud)

抑制输出.

顾名思义,自动加载的do文件会自动加载.当你输入

blah blah1 blah2
Run Code Online (Sandbox Code Playgroud)

Stata将首先blah在其内存中查找该程序.如果它不存在,它将blah.ado在其标识的子目录中查找文件,adopath默认情况下包括Stata自己的目录,以及当前目录(adopath如果您感兴趣,请查找更多的类型).如果它找到了这个blah.ado,它将(1)确保它在program define blah里面,并且(2)尝试用你提供的任何参数执行该程序(blah1 blah2).如果无法在blah.ado任何地方找到该文件,它将发出错误消息:

   . blah blah1 blah2
   unrecognized command:  blah
   r(199);
Run Code Online (Sandbox Code Playgroud)