Existe-t-il un moyen de convertir un fichier dta
fichier csv
?
Je n’ai pas de version de Stata installée sur mon ordinateur, je ne peux donc pas faire quelque chose comme:
File --> "Save as csv"
La bibliothèque d’parsing de données franchement incroyable pour Python appelée Pandas
a pour fonction de lire les fichiers Stata.
Après avoir installé Pandas
vous pouvez simplement faire:
>>> import pandas as pd >>> data = pd.io.stata.read_stata('my_stata_file.dta') >>> data.to_csv('my_stata_file.csv')
Incroyable!
Vous pourriez essayer de le faire avec R. Pour Stata <= 13 - il y a deux options.
Utilisez le package refuge pour lire le jeu de données, puis écrivez-le simplement dans un fichier CSV externe:
library(haven) yourData = read_dta("path/to/file") write.csv(yourData, file = "yourStataFile.csv")
Sinon, visitez le lien indiqué par huntaub dans un commentaire ci-dessous.
Pour les jeux de données Stata <= 12, un paquet étranger peut également être utilisé
library(foreign) yourData <- read.dta("yourStataFile.dta")
Vous pouvez le faire dans StatTransfer, R ou perl (comme mentionné par d’autres), mais StatTransfer coûte $$$ et R / Perl a une courbe d’apprentissage.
AM Statistical Software propose gratuitement un programme de statistiques basé sur des menus, qui peut ouvrir et convertir Stata .dta à partir de toutes les versions de Stata, voir:
Je n’ai pas essayé, mais si vous connaissez Perl, vous pouvez utiliser le module Parse-Stata-DtaReader pour convertir le fichier pour vous.
Le module possède un outil de ligne de commande, dta2csv , qui peut “convertir les fichiers Stata 8 et Stata 10 .dta en fichiers CSV”
La méthode R fonctionnera de manière fiable et nécessite peu de connaissances sur R. Notez que la conversion à l’aide du package étranger préserve 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 lors de 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 = ",")
Une autre façon de convertir à peu près n’importe quel format de données en utilisant R est d’utiliser le package rio .
rio
en utilisant install.packages("rio")
Chargez la bibliothèque rio, puis utilisez la fonction convert()
:
library("rio") convert("my_file.dta", "my_file.csv")
Cette méthode vous permet de convertir plusieurs formats (Stata, SPSS, SAS, CSV, etc.). Il utilise l’extension de fichier pour déduire le format et le chargement à l’aide du package d’importation approprié. Plus d’informations peuvent être trouvées sur la page R-project rio .
StatTransfer est un programme qui déplace facilement les données entre Stata, Excel (ou csv), SAS, etc. Il est très convivial (ne nécessite aucune connaissance en programmation). Voir http://www.stattransfer.com
Si vous utilisez le programme, notez simplement que vous devrez choisir “ASCII / Text-Delimited” pour utiliser des fichiers .csv plutôt que des fichiers .xls
SPSS peut également lire les fichiers .dta et les exporter au format .csv, mais cela coûte cher. PSPP, une version open source de SPSS, qui est approximative, pourrait également lire / exporter des fichiers .dta.
En Python, on peut utiliser statsmodels.iolib.foreign.genfromdta
pour lire les jeux de données Stata. En outre, il existe é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 méthodes ci-dessus reposent sur l’utilisation de pandas.io.stata.StataReader.data
, qui est désormais une fonction héritée et qui est devenue obsolète. En tant que tel, la nouvelle fonction pandas.read_stata
devrait maintenant être utilisée à la place .
Selon le fichier source de stata.py
, à partir de la version 0.23.0
, les éléments suivants sont pris en charge:
Comme d’autres l’ont noté, la fonction pandas.to_csv
peut ensuite être utilisée pour enregistrer le fichier sur le disque. Une fonction associée numpy.savetxt
peut également enregistrer les données sous forme de fichier texte.
MODIFIER:
Les détails suivants proviennent de la version d’ help dtaversion
de 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.
Pour ceux qui ont Stata (même si le demandeur ne le fait pas), vous pouvez utiliser ceci:
Une feuille externe produit un fichier délimité par des tabulations, vous devez donc spécifier l’option comma
comme ci-dessous
outsheet [varlist] using file.csv , comma
également, si vous souhaitez supprimer des étiquettes (qui sont incluses par défaut
outsheet [varlist] using file.csv, comma nolabel
astuce pour: