使用合并命令时文件“(...).csv”不是 Stata 文件错误

file "(...).csv" not Stata file error in using merge command

我用的是 Stata 12。

我想将文件 df_all_cities.csv 中的一些国家代码标识符添加到我的工作数据中。

然而,这行代码:

merge 1:1 city country using "df_all_cities.csv", nogen keep(1 3) 

给我错误:

. run "/var/folders/jg/k6r503pd64bf15kcf394w5mr0000gn/T//SD44694.000000"
file df_all_cities.csv not Stata format
r(610);

这是对我之前的问题的尝试解决方案,该文件是一个 dta 文件,不能在这个版本的 Stata 上运行,所以我使用 R 将它转换为 .csv,但这也不起作用。我认为这是因为命令本身“使用”不适用于 csv 文件,但我该如何编写呢?

你的直觉是对的。命令 merge 无法直接读取 .csv 文件。 (从技术上讲,using 在这里不是命令,它是一个常见的语法标记,表示后面跟着一个文件路径。)

您需要使用命令insheet读取.csv文件。你可以这样使用它。

* Preserve saves a snapshot of your data which is brought back at "restore"
preserve 
    
    * Read the csv file. clear can safely be used as data is preserved
    insheet using "df_all_cities.csv", clear
    
    * Create a tempfile where the data can be saved in .dta format
    tempfile country_codes
    save `country_codes'

* Bring back into working memory the snapshot saved at "preserve"
restore

* Merge your country codes from the tempfile to the data now back in working memory
merge 1:1 city country using `country_codes', nogen keep(1 3) 

查看 insheet 如何也在使用 using 并且此命令接受 .csv 个文件。