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"
10 answers
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!
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")
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:
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 "
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 = ",")
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
Usandoinstall.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 .
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
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.
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.
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: