使用locals在Stata中构造路径

时间:2014-02-27 08:47:36

标签: stata

假设我在目录hello.txt中有一个名为c:\test\的文件,那么以下运行在Stata中没有问题:

local folder "c:\test"
confirm file "`folder'\hello.txt"

但以下不会

local folder "c:\test"
local file "hello.txt"
confirm file "`folder'\`file'"

如何将多个本地组合到c:\test\hello.txt之类的路径中,该路径可用于例如confirm file。 {{1}}命令?

提前致谢。

1 个答案:

答案 0 :(得分:5)

问题是\既可以作为转义字符,也可以作为Windows文件路径的一部分。

当您在Stata中键入包含本地宏的内容时,Stata的第一个操作是评估该宏,即查看其内容并用该内容替换宏。有时(很少,但可能发生)你想要阻止它。这就是逃避角色的用途。

所以Stata在你的第二个例子中看到的是

c:\test`file'

这不是有效路径。

最简单的解决方案是使用/而不是\,这会导致Stata的有效路径,并且不会充当转义字符。

了解更多信息: Nicholas J. Cox(2008)Stata提示65:谨防背后的反斜杠。 The Stata Journal ,8(3):446--447。

http://www.stata-journal.com/article.html?article=pr0042