0

我正在按照此链接中有关如何通过foreach循环附加 Stata 文件的说明进行操作。我认为这很简单。

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

invalid `

我已经设置了我的工作目录,并且数据位于一个名为csvfiles. 我正在尝试使用本地宏调用子文件夹f中的每个文件,然后将每个文件附加到名为.csvfilesdatafilesdata.dta

我在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
4

1 回答 1

2

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

` 

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

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

insheet using “csvfiles/`f'”, clear

应该可以解决您的问题。

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

于 2017-01-21T13:10:00.147 回答