使用本地宏时出现无效的“`”错误
Invalid '`' error when using local macro
我正在按照 this link 中关于如何通过 foreach
循环附加 Stata 文件的说明进行操作。我认为这很简单。
但是,当我尝试在 foreach
循环中引用 datafiles
中的每个 f
时,我收到错误消息:
invalid `
我已经设置了工作目录,数据位于名为 csvfiles
的子文件夹中。我正在尝试使用我的本地宏 datafiles
调用 csvfiles
子文件夹中的每个文件 f
,然后将每个文件附加到名为 data.dta
.[=23= 的聚合 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
反斜杠字符对 Stata 有意义:它将阻止对 Stata 具有特殊意义的任何后续字符的解释,特别是左单引号字符
`
不会被解释为指示对宏的引用。
但并非一无所有:Stata 将允许您在任何操作系统的路径名中使用正斜杠字符,而在 Windows 上,Stata 将负责做必须做的事情以安抚 Windows.用
替换你的 insheet 命令
insheet using “csvfiles/`f'”, clear
应该可以解决您的问题。
请注意,您链接的说明正是这样做的;一些代码在路径名中包含反斜杠,但在包含宏的地方,使用正斜杠代替。
我正在按照 this link 中关于如何通过 foreach
循环附加 Stata 文件的说明进行操作。我认为这很简单。
但是,当我尝试在 foreach
循环中引用 datafiles
中的每个 f
时,我收到错误消息:
invalid `
我已经设置了工作目录,数据位于名为 csvfiles
的子文件夹中。我正在尝试使用我的本地宏 datafiles
调用 csvfiles
子文件夹中的每个文件 f
,然后将每个文件附加到名为 data.dta
.[=23= 的聚合 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
反斜杠字符对 Stata 有意义:它将阻止对 Stata 具有特殊意义的任何后续字符的解释,特别是左单引号字符
`
不会被解释为指示对宏的引用。
但并非一无所有:Stata 将允许您在任何操作系统的路径名中使用正斜杠字符,而在 Windows 上,Stata 将负责做必须做的事情以安抚 Windows.用
替换你的 insheet 命令insheet using “csvfiles/`f'”, clear
应该可以解决您的问题。
请注意,您链接的说明正是这样做的;一些代码在路径名中包含反斜杠,但在包含宏的地方,使用正斜杠代替。