Stata如何在循环中使用'file'导出分隔文件

Stata how to export delimited files using 'file` in a loop

我在一个文件夹中导入 dta 文件,然后将每个文件导出到一个 csv 文件。我不确定为什么,但循环不保存文件。这是代码:

global path "file path"
cd "${path}"

* Geocodes for edd
clear
local files: dir "${path}Data\MeasureData\" files "*_edd.dta"

*do loop to bridge file for EDD and 
foreach file in `files' {

    use "${path}Data/MeasureData/`file'", clear
    rename beafips edd_id
    merge m:1 edd_id using Data\TempData\bridge_edd.dta
    keep if _merge==3
    drop _merge
    export delimited "${path}Data\OutgoingData\`file'.csv", replace
    
}

我一直收到这样的错误:

文件filepath\Data\OutgoingData.csv 已保存

我原以为它会保存为 filepath\Data`file'.csv。我做错了什么?

发生这种情况是因为 Windows 默认在路径目录中使用反斜杠,但在这种情况下,您的计算机将反斜杠读取为转义字符,因此不会将 ` 解释为指示您的开头本地 files.

此问题通常不会出现在 Mac/Linux 机器上,因为它们默认在目录路径中使用正斜杠。

所以解决方案是将代码中的所有 \ 更改为 /。有关问题的更详细说明,请参阅此处:https://journals.sagepub.com/doi/pdf/10.1177/1536867X0800800310