我有各种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
之类的空格。因此,使用上面的本地定义,我得到以下错误:
文件规范无效
答案 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