Kan*_*any 2 dataset stata stata-macros
我有各种Stata数据文件。这些位于不同的文件夹中。我还有一个do使用这些文件的文件,一次使用一个。
有没有一种方法可以使用宏来引用do文件中的特定数据集?
例如:
local datafile = "C:\filepath\mydata.dta"
Run Code Online (Sandbox Code Playgroud)
想法是稍后在代码中使用它,如下所示:
use `datafile', clear
Run Code Online (Sandbox Code Playgroud)
将宏定义为全局变量是可行的。但是我不想使其全局化,因此也不能阻止我一次运行两个单独的程序。
全局定义(不带dta扩展名)为:
global datafile = "C:\filepath\mydata"
Run Code Online (Sandbox Code Playgroud)
用作:
use "$datafile", clear
Run Code Online (Sandbox Code Playgroud)
编辑:
我的文件路径中有空格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
Run Code Online (Sandbox Code Playgroud)
因此,您的use命令应改为如下所示:
use "`datafile'", clear
Run Code Online (Sandbox Code Playgroud)
请注意,与重要的空格不同,等号(=)实际上是多余的:
local datafile C:\A and B report\mydata.dta
display "`datafile'"
C:\A and B report\mydata.dta
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |