如何使用宏引用数据文件?

时间:2017-03-28 23:32:39

标签: dataset stata stata-macros

我有各种Stata数据文件。它们位于不同的文件夹中。我还有一个do文件,它一次使用这些文件。

有没有办法使用宏来引用我的do文件中的特定数据集?

例如:

local datafile = "C:\filepath\mydata.dta"

我的想法是稍后在代码中使用它,如下所示:

use `datafile', clear

将宏定义为全局变量有效。但我不想让它全球化,所以它不能阻止我一次运行两个单独的程序。

全局定义(没有dta扩展名)是:

global datafile = "C:\filepath\mydata"

用作:

use "$datafile", clear

修改

我的文件路径有C:\A and B report\mydata.dta之类的空格。因此,使用上面的本地定义,我得到以下错误:

  

文件规范无效

1 个答案:

答案 0 :(得分:4)

基于对本地宏的误解,这实际上是一个常见错误 在Stata工作中。

如果您的本地宏datafile等于"C:\A and B report\mydata.dta",则 包含双引号是宏定义过程的一部分,而不是 存在于存储的宏中。

要查看此内容

local datafile = "C:\A and B report\mydata.dta"

macro list _datafile 
_datafile:      C:\A and B report\mydata.dta

因此,您的use命令应如下所示:

use "`datafile'", clear

请注意,与重要的空格不同,等号(=)位于 事实多余:

local datafile C:\A and B report\mydata.dta

display "`datafile'"
C:\A and B report\mydata.dta