我有各种 Stata 数据文件。它们位于不同的文件夹中。我也有一个单do
使用这些文件的文件,一次一个。
有没有办法使用宏来引用我的特定数据集do
file?
例如:
local datafile = "C:\filepath\mydata.dta"
我们的想法是稍后在代码中使用它,如下所示:
use `datafile', clear
将宏定义为全局变量是可行的。但我不想让它成为全局的,所以它不会阻止我同时运行两个单独的程序。
全局定义(没有dta
扩展名)是:
global datafile = "C:\filepath\mydata"
这用作:
use "$datafile", clear
EDIT:
我的文件路径有空格,例如C:\A and B report\mydata.dta
。结果,通过上述本地定义,我收到以下错误:
文件规范无效
这实际上是一个常见错误,基于对本地宏如何工作的误解
在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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)