【问题标题】:Invalid '`' error when using local macro使用本地宏时出现无效的“`”错误
【发布时间】:2017-01-21 10:06:39
【问题描述】:

我遵循this link 的说明,了解如何通过foreach 循环附加Stata 文件。我认为这很简单。

但是,当我尝试在 foreach 循环中引用 datafiles 中的每个 f 时,我收到错误:

invalid `

我已设置我的工作目录,数据位于名为csvfiles 的子文件夹中。我正在尝试使用我的本地宏datafiles 调用csvfiles 子文件夹中的每个文件f,然后将每个文件附加到一个名为data.dta 的聚合Stata 数据集。

我在下面的do 文件中包含了代码:

clear
local datafiles: dir "csvfiles" files "*.csv"

foreach f of local datafiles {
    preserve
    insheet using “csvfiles\`f'”, clear
    ** add syntax here to run on each file**
    save temp, replace
    restore
    append using temp
}

rm temp
save data.dta, replace

【问题讨论】:

标签: foreach append stata stata-macros


【解决方案1】:

反斜杠字符对Stata有意义:它将阻止解释任何对Stata具有特殊含义的后续字符,特别是左单引号字​​符

` 

不会被解释为表示对宏的引用。

但一切都没有丢失:Stata 将允许您在任何操作系统上的路径名中使用正斜杠字符,并且在 Windows 上将负责做必须做的事情来安抚 Windows。用

替换你的insheet命令
insheet using “csvfiles/`f'”, clear

应该可以解决你的问题。

请注意,您链接的说明正是这样做的;一些代码在路径名中包含反斜杠,但在包含宏的地方,则使用正斜杠。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2016-08-18
    • 2018-07-05
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 2020-06-16
    相关资源
    最近更新 更多