【问题标题】:Importing .csv files and saving as .dta导入 .csv 文件并另存为 .dta
【发布时间】:2016-02-05 15:35:22
【问题描述】:

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

我想分别将每个导入 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'”

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

【问题讨论】:

    标签: csv import stata


    【解决方案1】:

    线

    insheet using `file', comma
    

    任何包含空格的文件名都会有问题。

    试试

    insheet using "`file'", comma
    

    insheet 的帮助非常明确:

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

    【讨论】:

    • 搜索大量帮助文件和问题的原始陈述表明您在执行代码以跟踪其执行之前不知道使用set trace onset tracedepth 1,让您在这种情况下缩小发出错误消息的命令范围。
    • 以前没有遇到过'set tracedepth 1' - 方便的提示,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2011-04-16
    • 1970-01-01
    相关资源
    最近更新 更多