Converter um ficheiro dta para csv sem software Stata

Existe uma maneira de converter um ficheiro dta para um csv?

Não tenho uma versão do Stata instalada no meu computador, por isso não posso fazer algo como:

File --> "Save as csv"
Author: Pearly Spencer, 2010-03-29

10 answers

A incrível biblioteca de análise de dados do Python chamada Pandas tem uma função para ler arquivos Stata.

Depois de instalar Pandas podes simplesmente fazer:

>>> import pandas as pd
>>> data = pd.io.stata.read_stata('my_stata_file.dta')
>>> data.to_csv('my_stata_file.csv')
Incrível!
 55
Author: LondonRob, 2014-09-15 14:20:49

Você poderia tentar fazê - lo através de R. Para Stata

Use o pacote haven para ler o conjunto de dados e, depois, basta escrevê-lo num ficheiro CSV externo:

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

Em alternativa, visite a ligação apontada por huntaub num comentário abaixo.


Para stata também pode ser utilizado um pacote estranho

library(foreign)
yourData <- read.dta("yourStataFile.dta")
 47
Author: radek, 2018-05-22 16:22:57

Você pode fazer isso em StatTransfer, R ou perl (como mencionado por outros), mas StatTransfer custa $ $ $ $ e R / Perl tem uma curva de aprendizagem.
Há um programa de estatísticas livre, orientado por menu, de um Software estatístico AM que pode abrir e converter Stata .dta de todas as versões do Stata, veja:

Http://am.air.org/

 7
Author: eric.a.booth, 2013-09-30 04:00:08

Ainda não tentei, mas se souber o Perl, pode usar o Módulo Parse-Stata-Dtarader para converter o ficheiro por si.

O módulo tem uma ferramenta de linha de comandos dta2csv , que pode " converter o Stata 8 e o stata 10 .ficheiros dta para csv "

 7
Author: ghostdog74, 2015-10-21 20:16:40

O método R funcionará de forma fiável, e requer pouco conhecimento de R. Note que a conversão usando o pacote estrangeiro irá preservar os dados, mas pode introduzir diferenças. Por exemplo, ao converter uma tabela sem uma chave primária, a chave primária e as colunas associadas serão inseridas durante a conversão.

De http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ eu recomendo:

library(foreign)
write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",")
 4
Author: Nels, 2013-03-13 21:59:05

Outra forma de converter entre praticamente qualquer formato de dados usando R é com o pacote rio.

  • instale R de CRAN e abra R
  • Instale o pacote rio Usando install.packages("rio")
  • Carregue a biblioteca do rio, depois use a função convert():

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

Este método permite converter entre vários formatos (por exemplo, Stata, SPSS, SAS, CSV, etc.). Ele usa a extensão de arquivo para inferir formato e carga usando o adequado a importar o pacote. Mais informações podem ser encontradas no R-project rio page .

 4
Author: Liny C-J, 2018-07-20 09:27:12

StatTransfer é um programa que move os dados facilmente entre Stata, Excel (ou csv), SAS, etc. É muito fácil de usar (não requer nenhuma habilidade de programação). Veja www.stattransfer.com

Se você usar o programa apenas note que você terá que escolher "ASCII/Text - Delimited" para trabalhar com .arquivos csv em vez de .xls

 2
Author: dandyjuan, 2015-02-02 11:54:01

O SPSS também pode ler .arquivos dta e exportá-los para .csv, mas isso custa dinheiro. PSPP, uma versão de código aberto do SPSS, que é áspero, também pode ser capaz de ler/exportar .ficheiros dta.

 1
Author: Nicolas Smoll, 2018-03-28 12:25:27
ficheiro de código de stata.py, a partir da versão 0.23.0, são suportados os seguintes:

Versões do ficheiro de dados Stata:

  • 104
  • 105
  • 108
  • 111
  • 113
  • 114
  • 115
  • 117
  • 118

Codificações válidas:

  • ascii
  • us-ascii
  • Latim-1
  • latin_1
  • iso-8859-1
  • iso8859 - 1
  • 8859
  • cp819
  • Latim
  • latin1
  • L1

Como outros observaram, o pandas.to_csv função pode então ser usado para salvar o arquivo em disco. Uma função relacionadanumpy.savetxt também pode salvar os dados como um ficheiro de texto.


Editar:

Os seguintes detalhes vêm de help dtaversion no 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.
 1
Author: Pearly Spencer, 2018-05-22 16:39:26

Para aqueles que têm Stata (mesmo que o asker não) você pode usar isto:

A folha de cálculo produz um ficheiro delimitado por tabulações, pelo que terá de indicar a opção comma como em baixo

outsheet [varlist] using file.csv , comma

Também, se quiser remover as legendas (que estão incluídas por omissão

outsheet [varlist] using file.csv, comma nolabel

A ponta do chapéu para:

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

 -10
Author: ovatsug25, 2015-02-02 11:54:23