导入.csv文件并另存为.dta

时间:2016-02-05 15:35:22

标签: csv import stata

我有一个包含许多csv文件的文件夹,例如“leeds dz.csv”,“leeds gh.csv”,“leeds fr.csv”。文件名的第一部分是常量(即总是“利兹”)。

我想单独导入每个Stata,转换为.dta文件和save。目前我有这段代码:

cd "etcetc"
clear
local myfilelist : dir . files"*.csv"
foreach file of local myfilelist {
drop _all
insheet using `file', comma
local outfile = subinstr("`file'",".csv","",.)
save "`outfile'", replace
}

如果我手动重命名所有.csv文件以删除“leeds”部分,即每个.csv被命名为“dz.csv”而不是“leeds dz.csv”等,代码工作正常。

但是,如果我不删除,我收到错误“invalid'dz.csv'”

我猜这与我的第3行代码有关,特别是“* .csv”。但我不确定如何调整代码/为什么它不允许我导入名称中有空格的文件?

1 个答案:

答案 0 :(得分:0)

该行

insheet using `file', comma
任何包含空格的文件名都会出现问题

尝试

insheet using "`file'", comma

insheet的帮助非常明确:

  

如果指定了没有扩展名的文件名,则假定为.raw。如果你的       filename包含嵌入的空格,记得用double括起来       引号。