Convertir un fichier dta en csv sans logiciel Stata

Est-il un moyen de convertir un dta fichier csv ?

Je n'ai pas de version de Stata installée sur mon ordinateur, donc je ne peux pas faire quelque chose comme:

File --> "Save as csv"
55
demandé sur Pearly Spencer 2010-03-29 10:03:54

10 réponses

la bibliothèque d'analyse de données franchement incroyable pour Python appelé Pandas a une fonction pour lire des fichiers Stata.

après avoir installé Pandas vous pouvez juste faire:

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

incroyable!

55
répondu LondonRob 2014-09-15 14:20:49

Vous pouvez essayer de le faire par le biais de R. Pour Stata <= 13 - il y a deux options.

utilisez le haven package pour lire l'ensemble de données, puis vous n'avez qu'à l'écrire dans un fichier CSV externe:

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

alternativement, visitez le lien pointé par huntaub dans un commentaire ci-dessous.


pour Stata < = 12 ensembles de données l'emballage étranger peut aussi être utilisé

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

vous pouvez le faire dans StatTransfer, R ou perl (comme mentionné par d'autres), mais StatTransfer coûte $ $ et R/Perl ont une courbe d'apprentissage.

Il existe un programme de statistiques gratuit, piloté par menu, à partir D'un logiciel statistique AM qui peut ouvrir et convertir Stata .dta de toutes les versions de Stata, voir:

http://am.air.org /

7
répondu eric.a.booth 2013-09-30 04:00:08

Je n'ai pas essayé, mais si vous connaissez Perl vous pouvez utiliser le Parse-Stata-DtaReader module pour convertir le fichier pour vous.

le module a un outil en ligne de commande dta2csv , qui peut " convertir Stata 8 et Stata 10 .dta des fichiers csv",

7
répondu ghostdog74 2015-10-21 20:16:40

la méthode R fonctionne de manière fiable et nécessite peu de connaissances de R. notez que la conversion utilisant le paquet étranger préservera les données, mais peut introduire des différences. Par exemple, lors de la conversion d'une table sans clé primaire, la clé primaire et les colonnes associées seront insérées pendant la conversion.

de http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion / je recommande:

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

une autre façon de convertir entre à peu près n'importe quel format de données en utilisant R est avec le paquet rio .

  • Installer une de la R de CRAN et ouvert de R
  • installer le paquet rio en utilisant install.packages("rio")
  • chargez la bibliothèque de rio, puis utilisez la fonction convert() :

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

cette méthode vous permet de convertir entre de nombreux formats (par exemple, Stata, SPSS, SAS, CSV, etc.). Il utilise l'extension de fichier pour inférer le format et charger en utilisant le paquet d'importation approprié. Plus d'informations peuvent être trouvées sur le R-projet rio page .

4
répondu Liny C-J 2018-07-20 09:27:12

StatTransfer est un programme qui déplace les données facilement entre Stata, Excel (ou csv), SAS, etc. Il est très convivial (ne nécessite aucune compétence de programmation). Voir www.stattransfer.com

si vous utilisez le programme, notez simplement que vous devrez choisir" ASCII/Text - Delimited " pour travailler avec .les fichiers csv plutôt que .xls

2
répondu dandyjuan 2015-02-02 11:54:01

SPSS peut aussi lire .dta des fichiers et de les exporter .csv, mais cela coûte de l'argent. PSPP, une version open source de SPSS, qui est grossière, pourrait également être capable de lire/exporter .fichiers dta.

1
répondu Nicolas Smoll 2018-03-28 12:25:27

en Python, on peut utiliser statsmodels.iolib.foreign.genfromdta pour lire les ensembles de données Stata. En outre, il y a également un wrapper de la fonction susmentionnée qui peut être utilisé pour lire un fichier Stata directement à partir du web: statsmodels.datasets.webuse .

Néanmoins, les deux ci-dessus reposent sur l'utilisation de la pandas.io.stata.StataReader.data , qui est maintenant une fonction héritée et a été désapprouvée. En tant que tel, le nouveau pandas.read_stata la fonction doit maintenant toujours être utilisée à la place de .

selon le fichier source de stata.py , à partir de la version 0.23.0 , les suivants sont pris en charge:

Stata fichier de données versions:

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

Valide codages:

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

comme d'autres l'ont noté, la fonction pandas.to_csv peut alors être utilisée pour enregistrer le fichier dans le disque. Une fonction numpy.savetxt peut également enregistrer les données comme un fichier texte.


modifier:

les détails proviennent de help dtaversion dans 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
répondu Pearly Spencer 2018-05-22 16:39:26

pour ceux qui ont Stata (même si l'asker ne le fait pas), vous pouvez utiliser ceci:

outsheet produit un fichier délimité par des onglets, vous devez donc spécifier l'option comma comme ci-dessous

outsheet [varlist] using file.csv , comma

aussi, si vous voulez supprimer les étiquettes (qui sont incluses par défaut

outsheet [varlist] using file.csv, comma nolabel

astuce chapeau:

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

-10
répondu ovatsug25 2015-02-02 11:54:23