没有Stata软件将Stata .dta文件转换为CSV

有没有办法将dta文件转换为CSV?

我没有Stata的版本,所以我不能做像保存为CSV文件的东西。

你可以尝试通过R做。对于Stata <= 13 – 有两个选项。

使用haven软件包读取数据集,然后将其写入外部CSV文件:

library(haven) yourData = read_dta("path/to/file") write.csv(yourData, file = "yourStataFile.csv") 

或者,请在下面的评论中访问huntaub指出的链接 。


对于Stata <= 12数据集,也可以使用外部程序包

 library(foreign) yourData <- read.dta("yourStataFile.dta") 

Python这个令人难以置信的数据分析库称为Pandas具有读取Stata文件的function。

安装Pandas你可以做:

 >>> import pandas as pd >>> data = pd.io.stata.read_stata('my_stata_file.dta') >>> data.to_csv('my_stata_file.csv') 

惊人!

您可以在StatTransfer,R或perl(正如其他人所提到的那样)中做到这一点,但是StatTransfer的成本是$ $$$,而R / Perl则有一条学习曲线。
AM统计软件有一个免费的菜单驱动统计程序,可以打开和转换Stata所有版本的Stata .dta,请参阅:

http://am.air.org/

我还没有尝试过,但是如果你知道Perl,你可以使用Parse-Stata-DtaReader模块来为你转换文件。

该模块有一个命令行工具dta2csv ,它可以“将Stata 8和Stata 10 .dta文件转换为csv”

R方法可以可靠地工作,而且对R的了解很less。注意使用外部包进行转换将保留数据,但可能会引入差异。 例如,在转换没有主键的表时,主键和相关列将在转换期间插入。

http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/我build议:;

 library(foreign) write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",") 

StatTransfer是一个在Stata,Excel(或csv),SAS等之间轻松移动数据的程序。它非常易于用户使用(不需要编程技巧)。 请参阅www.stattransfer.com

如果您使用该程序,只需注意,您将不得不select“ASCII /文本 – 分隔符”来处理.csv文件而不是.xls

使用R转换几乎任何格式的另一种方法:

安装rio软件包。

加载rio库,然后使用convert命令:

library (rio) convert ("my_file.dta", "my_file.csv")

这种方法允许你在多种格式之间进行转换 – 更多关于R-project rio页面的信息

对于那些有Stata的人(尽pipe提问者没有),你可以使用这个:

外表产生一个制表符分隔的文件,所以你需要指定comma选项,如下所示

 outsheet [varlist] using file.csv , comma 

另外,如果你想删除标签(这是默认包含的

 outsheet [varlist] using file.csv, comma nolabel 

帽子提示:

http://www.ats.ucla.edu/stat/stata/faq/outsheet.htm