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
我在一个文件夹中导入 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