Sonntag, Dezember 15, 2019

Konvertieren von dta-Datei in csv ohne Stata-software

Gibt es einen Weg, um zu konvertieren eine dta Datei zu einem csv?

Habe ich nicht eine version von Stata auf meinem computer installiert, so dass ich etwas nicht tun kann, wie:

File --> "Save as csv"
  • Ich bin mir sicher, dass es einen Weg gibt. Wenn das format der .DTA-Datei angegeben ist, kann es eine einfache Programmierung
  • es ist binären, ich bin mir nicht sicher, wie man es sich von dort
InformationsquelleAutor Brian | 2010-03-29

10 Kommentare

  1. 70

    Den offen-den unglaublichen Daten-Analyse-Bibliothek für Python genannt Pandas hat eine Funktion zum Lesen von Stata-Dateien.

    Nach der Installation Pandas können Sie nur:

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

    Erstaunlich!

    • wunderbar, ich danke Ihnen sehr!
    • Wow, ich kann nicht glauben, dass Pandas unterstützt Stata :O
  2. 54

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

    Verwenden Sie die haven-Paket zu Lesen, dataset, und dann kann man einfach schreiben Sie es auf externe CSV-Datei:

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

    Alternativ, besuchen Sie der link zeigte huntaub in einem Kommentar unten.


    Für Stata <= 12 Datensätze ausländische Paket kann auch verwendet werden,

    library(foreign)
    yourData <- read.dta("yourStataFile.dta")
    
    • arbeitete wie ein Charme!
    • Beachten Sie, dass diese Technik funktioniert nicht, wenn Sie werden unter Verwendung von Stata 13 .dta – Dateien. Sie sollten nutzen die Techniken, die in dieser Frage.
    • Dank huntaub, aktualisierte Antwort zu klären ist 12 nach unten.
    • Hinweis: für komplette Anfänger: beginnen Sie mit library(haven)
    • Danke @Candamir! Guter Punkt – Antwort aktualisiert.
  3. 7

    Können Sie es tun in StatTransfer, R oder perl (wie von anderen erwähnt), aber StatTransfer Kosten $$$ und R/Perl haben eine Lernkurve.

    Es ist eine freie, menügeführte stats-Programm von AM Statistical Software öffnen und konvertieren Stata .dta von allen Versionen von Stata finden Sie unter:

    http://am.air.org/

    • BTW, hier ist Stata ist Aufschlüsselung, wie ein .dta-Datei, die nützlich sein könnte für die Extraktion von Daten-Elementen: stata.com/help.cgi?dta
  4. 7

    Habe ich nicht ausprobiert, aber wenn Sie wissen, Perl können Sie die Parse-Stata-DtaReader Modul, um die Datei zu konvertieren für Sie.

    Verfügt das Modul über ein command-line tool dta2csv, die „konvertieren Stata 8 und Stata 10 .dta-Dateien in das csv“

  5. 5

    R Methode funktioniert zuverlässig, und es erfordert etwas wissen von R. Beachten Sie, dass die Konvertierung mit dem fremden Paket wird die Erhaltung der Daten, sondern führt Unterschiede. Zum Beispiel, wenn die Konvertierung eine Tabelle ohne Primärschlüssel, primary key und damit verbundenen Spalten eingefügt werden, während der Konvertierung.

    Vom http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ ich empfehlen:

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

    Einen anderen Weg der Konvertierung zwischen so ziemlich jedem Datenformat mit Hilfe von R ist mit der rio Paket.

    • Installieren Sie R aus CRAN und offen R
    • Installieren Sie die rio Paket mit install.packages("rio")
    • Laden Sie die rio-Bibliothek, verwenden Sie dann die convert() Funktion:

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

    Diese Methode ermöglicht Ihnen das konvertieren zwischen vielen Formaten (z.B. Stata, SPSS, SAS, CSV, etc.). Es verwendet die Datei-Endung zu folgern, format und laden Sie mit dem entsprechenden Paket importieren. Mehr Infos finden Sie auf der R-Projekt-rio-Seite.

    • Ich bin mir sicher, dass dies funktioniert gut für diejenigen, die bereits Erfahrung mit R, aber für diejenigen, die nicht (wie ich), dies wird wahrscheinlich frustrierend sein. Es dauerte eine Stunde-plus Googeln und trial-and-error, um herauszufinden, all die verschiedenen Pakete, die Sie installieren müssen, bevor diese tatsächlich funktioniert.
    • Ich bin neu in R und fand, dass dies sehr einfach. Gerade lief install.packages("rio") und war gut zu gehen.
  7. 3

    StatTransfer ist ein Programm, das bewegt die Daten problemlos zwischen Stata, Excel (oder csv), SAS, etc. Es ist sehr benutzerfreundlich (erfordert keine Programmier-Kenntnisse). Sehen http://www.stattransfer.com

    Wenn Sie das Programm verwenden, beachten Sie, dass nur Sie haben, um wählen Sie „ASCII – /Text – Trennzeichen“, um mit zu arbeiten .csv-Dateien statt .xls

    • Das ist bezahlt, aber Sie können Sie herunterladen, um zu versuchen out.
  8. 1

    SPSS kann auch Lesen .dta-Dateien und exportieren Sie Sie .csv, aber auch das kostet Geld. PSPP, eine open-source-version von SPSS, die rau ist, könnte auch in der Lage sein zu Lesen/exportieren .dta-Dateien.

  9. 1

    In Python, kann man sich statsmodels.iolib.ausländischen.genfromdta zu Lesen Stata-Datensätze. Darüber hinaus gibt es auch ein wrapper der oben genannten Funktion, die verwendet werden können, zu Lesen, eine Stata-Datei direkt aus dem web: statsmodels.datasets.webuse.

    Trotzdem, beide der oben genannten stützen sich auf die Verwendung der pandas.io.stata.StataReader.data, das ist jetzt eine legacy-Funktion und ist veraltet. Als solche, die neue pandas.read_stata Funktion sollte jetzt immer verwendet werden statt.

    Entsprechend der Quell-Datei von stata.py ab version 0.23.0 folgende werden unterstützt:

    Stata-Daten-Datei-Versionen:

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

    Gültige Codierungen:

    • ascii –
    • us-ascii –
    • latin-1
    • latin_1
    • iso-8859-1
    • iso8859-1
    • 8859
    • cp819
    • Latein
    • latin1
    • L1

    Wie andere bemerkt haben, sind die pandas.to_csv Funktion kann dann verwendet werden, um speichern Sie die Datei in der Festplatte. Eine Verwandte Funktion numpy.savetxt können auch speichern Sie die Daten
    als text-Datei.


    EDIT:

    Die folgenden Angaben stammen aus help dtaversion in 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.
    
    • Ich nahm mir die Freiheit das hinzufügen von mehr Informationen über dta-Versionen.
    • Danke. Ich war überrascht zu sehen, dass diese details sind buchstäblich begraben im Quellcode, so dass ich dachte, ich poste Sie hier für andere.
  10. -10

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

    outsheet erzeugt eine tab-getrennte Datei, so müssen Sie die comma option wie unten

    outsheet [varlist] using file.csv , comma
    

    auch, wenn Sie wollen entfernen Sie die Etiketten (die standardmäßig enthalten sind

    outsheet [varlist] using file.csv, comma nolabel
    

    Hut Tipp:

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

Kostenlose Online-Tests

Ihre Entwicklerrolle