2010-03-29 6 views
45

Gibt es eine Möglichkeit, eine dta-Datei in eine CSV-Datei zu konvertieren?Konvertieren von Stata-.dta-Dateien in CSV-Dateien ohne Stata-Software

Ich habe keine Version von Stata, also kann ich sowas nicht als CSV-Datei speichern.

+2

Ich bin sicher, es gibt einen Weg . Wenn das Format der .DTA-Datei angegeben wird, kann es eine einfache Programmierübung werden –

+1

es binär, ich bin mir nicht sicher, wie man es von dort – Brian

Antwort

5

Ich habe es nicht versucht, aber wenn Sie Perl kennen, können Sie das Parse-Stata-DtaReader Modul verwenden, um die Datei für Sie zu konvertieren.

Das Modul verfügt über eine Befehlszeilentool dta2csv, die „convert Stata 8 und Stata 10 .dta Dateien CSV“ können

42

Sie könnten versuchen, es durch R. Für Stata tun < = 13 - es gibt zwei Optionen.

Verwenden Sie die haven package den Datensatz zu lesen und dann einfach Sie es an externe CSV-Datei schreiben:

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

Alternativ besuchen the link von huntaub der in einem Kommentar unten gerichtet.


Für Stata < = 12 Datensätze foreign Paket kann auch

verwendet werden
library(foreign) 
yourData <- read.dta("yourStataFile.dta") 
+5

funktioniert wie ein Charme! – zpesk

+1

Beachten Sie, dass diese Technik nicht funktioniert, wenn Sie Stata 13 '.dta'-Dateien verwenden. Sie sollten die Techniken in [this] (http://stackoverflow.com/questions/23899009/read-stata-file-in-r) Frage verwenden. – huntaub

+0

@huntaub Danke huntaub, aktualisierte Antwort zu klären, dass 12 nach unten ist. – radek

1

StatTransfer ist ein Programm, das Daten leicht zwischen Stata, Excel (oder csv) bewegt, SAS, etc. Es ist sehr benutzerfreundlich (erfordert keine Programmierkenntnisse). Siehe www.stattransfer.com

Wenn Sie das Programm nur verwenden, beachten Sie, dass Sie „ASCII/Text - mit Trennzeichen“ muss wählen mit CSV-Dateien zu arbeiten, anstatt .xls

+1

Dies ist bezahlt, aber Sie können herunterladen, um es auszuprobieren. – vsingh

6

Sie tun können, es in StatTransfer , R oder Perl (wie von anderen erwähnt), aber StatTransfer kostet $$$ und R/Perl haben eine Lernkurve.
Es ist ein freies, menügesteuerte Statistik-Programm von AM Statistical Software, die öffnen und Stata .dta von allen Versionen von Stata konvertieren finden Sie unter:

http://am.air.org/

+4

BTW, hier ist Statas Aufschlüsselung, wie eine .dta-Datei strukturiert ist, die zum Extrahieren von Datenelementen nützlich sein könnte: http://www.stata.com/help.cgi?dta –

3

Die R-Methode zuverlässig funktioniert, und es erfordert wenig Kenntnisse von R. Beachten Sie, dass die Konvertierung mit dem fremden Paket Daten erhalten wird, aber Unterschiede einführen kann. Wenn Sie beispielsweise eine Tabelle ohne Primärschlüssel konvertieren, werden der Primärschlüssel und die zugehörigen Spalten während der Konvertierung eingefügt.

Von http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ Ich empfehle:

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

Für diejenigen, die Stata haben (auch wenn der Fragesteller nicht der Fall ist) können Sie verwenden:

outsheet erzeugt eine tabstoppgetrennte Datei, so dass Sie angeben müssen die comma Option wie unten

outsheet [varlist] using file.csv , comma 

auch, wenn Sie Etiketten entfernen möchten (standardmäßig enthalten sind

outsheet [varlist] using file.csv, comma nolabel 

Hut Spitze zu:

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

41

Die offen-unglaubliche Daten-Analyse-Bibliothek für Python Pandas genannt hat eine Funktion Stata-Dateien zu lesen.

Nach Pandas Installation können Sie einfach tun:

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

Amazing!

+1

wunderbar, vielen Dank! – albert

+1

Wow, ich kann nicht glauben, dass Pandas Stata unterstützt: O – ratskin

1

Eine weitere Möglichkeit der Verwendung von R zwischen ziemlich beliebigen Formaten konvertieren:

das Paket rio installieren.

laden rio Bibliothek, verwenden Sie dann den Befehl convert:

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

dieser Methode können Sie zwischen vielen Formaten konvertieren - weitere Informationen auf der R-project rio page

+0

Ich bin mir sicher, das funktioniert gut für diejenigen, die bereits mit R erlebt haben, aber für diejenigen, die nicht (wie ich) sind, wird das wahrscheinlich frustrierend sein. Ich brauchte eine Stunde plus Googeln und Trial-and-Error, um alle verschiedenen Pakete zu finden, die Sie installieren müssen, bevor dies funktioniert. –

+0

@KennyLJ Ich bin neu in R und fand das sehr einfach. Ich habe gerade 'install.packages (" rio ")' ausgeführt und es war gut zu gehen. –