有没有办法将dta
文件转换为csv
?
我的计算机上没有安装Stata版本,因此无法执行以下操作:
File --> "Save as csv"
Answers:
.dta
文件,则此技术无效。您应该在此问题中使用技巧。
library(haven)
您可以在StatTransfer,R或perl中进行操作(正如其他人所提到的那样),但是StatTransfer的成本$$$和R / Perl具有学习曲线。
AM Statistics Software有一个免费的,由菜单驱动的统计程序,可以打开和转换所有Stata版本的Stata .dta,请参阅:
我没有尝试过,但是如果您知道Perl,则可以使用Parse-Stata-DtaReader模块为您转换文件。
该模块具有命令行工具dta2csv,可以“将Stata 8和Stata 10 .dta文件转换为csv”
使用R在几乎任何数据格式之间转换的另一种方法是rio软件包。
rio
使用以下方法安装软件包install.packages("rio")
加载rio库,然后使用以下convert()
功能:
library("rio")
convert("my_file.dta", "my_file.csv")
此方法使您可以在多种格式之间进行转换(例如,Stata,SPSS,SAS,CSV等)。它使用文件扩展名来推断格式并使用适当的导入包加载。可以在R-project rio页面上找到更多信息。
install.packages("rio")
,很高兴去。
R方法将可靠地工作,并且几乎不需要R知识。请注意,使用外部程序包进行的转换将保留数据,但可能会带来差异。例如,当转换没有主键的表时,在转换期间将插入主键和关联的列。
从http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/我建议:
library(foreign)
write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",")
StatTransfer是一个程序,可在Stata,Excel(或csv),SAS等之间轻松移动数据。它非常易于使用(不需要编程技能)。见www.stattransfer.com
如果使用该程序,请注意,您必须选择“ ASCII /文本分隔”才能使用.csv文件而不是.xls
在Python中,可以使用 statsmodels.iolib.foreign.genfromdta
用来读取Stata数据集。此外,还有上述功能的包装,可用于直接从Web读取Stata文件statsmodels.datasets.webuse
。
尽管如此,以上两种情况都依赖于 pandas.io.stata.StataReader.data
现在已成为遗留函数并且已弃用。因此,新的pandas.read_stata
功能现在应该总是被用来代替。
根据 源文件的stata.py
,为的版本0.23.0
,下面的支持:
正如其他人指出的那样,该pandas.to_csv
功能随后可用于将文件保存到磁盘。相关功能numpy.savetxt
还可以将数据另存为文本文件。
编辑:
以下详细信息来自help dtaversion
Stata 15.1:
Stata version .dta file format
----------------------------------------
1 102
2, 3 103
4 104
5 105
6 108
7 110 and 111
8, 9 112 and 113
10, 11 114
12 115
13 117
14 and 15 118 (# of variables <= 32,767)
15 119 (# of variables > 32,767, Stata/MP only)
----------------------------------------
file formats 103, 106, 107, 109, and 116
were never used in any official release.
对于拥有Stata的人(即使询问者没有),您可以使用以下方法:
外表会产生制表符分隔的文件,因此您需要指定以下comma
选项
outsheet [varlist] using file.csv , comma
另外,如果要删除标签(默认情况下包含
outsheet [varlist] using file.csv, comma nolabel
帽子提示: