不使用Stata软件将dta文件转换为csv

不使用Stata软件将dta文件转换为csv,csv,stata,file-conversion,Csv,Stata,File Conversion,有没有办法将dta文件转换为csv 我的计算机上没有安装Stata版本,因此无法执行以下操作: File --> "Save as csv" 我没有尝试过,但是如果您知道Perl,您可以使用该模块为您转换文件 该模块有一个命令行工具,可以“将Stata 8和Stata 10.dta文件转换为csv”您可以通过R: 对于StataStatTransfer是一个在Stata、Excel(或csv)、SAS等之间轻松移动数据的程序。它非常用户友好(不需要编程技能)。见www.stattrans

有没有办法将
dta
文件转换为
csv

我的计算机上没有安装Stata版本,因此无法执行以下操作:

File --> "Save as csv"

我没有尝试过,但是如果您知道Perl,您可以使用该模块为您转换文件


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

您可以通过R:


对于StataStatTransfer是一个在Stata、Excel(或csv)、SAS等之间轻松移动数据的程序。它非常用户友好(不需要编程技能)。见www.stattransfer.com


如果您使用该程序,请注意,您必须选择“ASCII/文本分隔符”来处理.csv文件,而不是.xls文件,您可以使用StatTransfer、R或perl(如其他人所述)进行处理,但StatTransfer的成本为$$,并且R/perl具有学习曲线。
AM统计软件提供了一个免费的、菜单驱动的统计程序,可以从所有版本的Stata打开和转换Stata.dta,请参见:


R方法将可靠地工作,并且它几乎不需要了解R。请注意,使用外部包的转换将保留数据,但可能会引入差异。例如,在转换没有主键的表时,主键和相关列将在转换过程中插入

我建议:

library(foreign)
write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",")
对于那些有Stata(即使询问者没有)的人,您可以使用:

outsheet生成一个以制表符分隔的文件,因此您需要指定如下所示的
逗号
选项

outsheet [varlist] using file.csv , comma
此外,如果要删除默认包含的标签

outsheet [varlist] using file.csv, comma nolabel
帽尖至:


调用的Python数据分析库具有读取Stata文件的功能

安装
Pandas
后,您只需执行以下操作:

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

惊人!

使用R在几乎任何数据格式之间进行转换的另一种方法是使用包

  • 从安装R并打开R
  • 使用
    Install.packages(“rio”)
  • 加载rio库,然后使用
    convert()
    函数:

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

此方法允许您在多种格式(例如Stata、SPSS、SAS、CSV等)之间进行转换。它使用文件扩展名推断格式并使用适当的导入包进行加载。有关详细信息,请参阅。

SPSS也可以读取.dta文件并将其导出到.csv,但这需要花钱。PSPP是SPSS的开放源代码版本,它比较粗糙,可能还可以读取/导出.dta文件。

在Python中,可以使用它来读取.dta文件tata数据集。此外,上述函数还有一个包装器,可用于直接从web读取Stata文件:

尽管如此,上述两项都依赖于的使用,它现在是一个遗留函数,已被弃用。因此,现在应始终使用新函数

根据
stata.py
的版本,从版本
0.23.0
起,支持以下功能:

Stata数据文件版本:
  • 104
  • 105
  • 108
  • 111
  • 113
  • 114
  • 115
  • 117
  • 118
有效编码:
  • ascii码
  • 美国ascii码
  • 拉丁语-1
  • 拉丁语1
  • iso-8859-1
  • iso8859-1
  • 8859
  • cp819
  • 拉丁语
  • 拉丁语1
  • L1
正如其他人所指出的,该函数可以用于将文件保存到磁盘中。相关函数也可以保存数据 作为文本文件


编辑:

以下详细信息来自Stata 15.1中的帮助dtaversion:

        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 version.dta文件格式
----------------------------------------
1               102
2, 3               103
4               104
5               105
6               108
7110和111
8、9、112和113
10, 11               114
12               115
13               117
14和15118(#变量32767,仅Stata/MP)
----------------------------------------
文件格式103、106、107、109和116
从未在任何官方版本中使用过。

一些提到的SPSS、StatTransfer不是免费的。R和Python(也在上面提到)可能是您的选择。但就个人而言,我想推荐Python,它的语法比R直观得多。您只需在Python中使用几个带Pandas的命令行即可读取和导出大多数常用的数据格式:

作为pd进口熊猫

df=pd.read\u stata('YourDataName.dta')

df.to_csv('YourDataName.csv'))


我相信有一种方法。如果指定了.DTA文件的格式,它可以成为一个简单的编程练习。它是二进制的,我不知道如何从中得到它。顺便说一句,下面是Stata对.DTA文件的结构的分解,这可能对提取数据元素有用:这是付费的,但你可以下载试用如果您使用的是Stata 13
.dta
文件,则que不起作用。您应该使用有问题的技术。@huntaub感谢huntaub,更新的答案澄清了这一点,即12向下。完整初学者注意:从
库开始(haven)
我相信这对那些已经有过R经验的人来说非常有效,但对于那些没有经验的人(比如我),这可能会让人沮丧。我花了一个多小时的时间在谷歌上搜索和反复试验,才弄清楚你必须安装的所有不同的软件包,然后才真正起作用。@KennyLJ我是R的新手,发现这很容易。只需运行
install.packages(“rio”)
很好。哇,我真不敢相信熊猫会支持斯塔塔:这对我来说确实有用。非常简单,可以从
library("rio")
convert("my_file.dta", "my_file.csv")
        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.