Est-il possible de convertir un fichier dta
en un 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'analyse de données franchement incroyable pour Python appelé Pandas
a une fonction permettant 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 pouvez essayer de le faire via R. Pour Stata <= 13 - il existe deux options.
Utilisez le paquet de 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 site le lien indiqué par huntaub dans un commentaire ci-dessous.
Pour Stata <= 12 jeux de données étranger le package 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 ont une courbe d'apprentissage.
AM Statistical Software propose un programme de statistiques gratuit piloté par menus qui permet d’ouvrir et de 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 à votre place.
Le module a un outil en ligne de commande dta2csv , qui peut "convertir les fichiers Stata 8 et Stata 10 en csv"
Un autre moyen de convertir entre pratiquement tous les formats de données utilisant R consiste à 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 de nombreux formats (par exemple, 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 le page du projet Rio .
La méthode R fonctionnera de manière fiable et nécessite peu de connaissances de R. Notez que la conversion à l'aide du package é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 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 = ",")
StatTransfer est un programme qui permet de transférer facilement des données entre Stata, Excel (ou csv), SAS, etc. Il est très convivial (ne nécessite aucune compétence en programmation). Voir www.stattransfer.com
Si vous utilisez le programme, sachez que vous devrez choisir "ASCII/Texte - Délimité" pour travailler avec des fichiers .csv plutôt que .xls
SPSS peut également lire les fichiers .dta et les exporter au format .csv, mais cela coûte de l'argent. PSPP, une version open source de SPSS, qui est approximative, pourrait également être en mesure de 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 solutions ci-dessus reposent sur l'utilisation de pandas.io.stata.StataReader.data
, qui est maintenant une fonction héritée et qui est obsolète. En tant que telle, la nouvelle fonction pandas.read_stata
devrait maintenant toujours être utilisée à la place.
Selon le fichier source de stata.py
, À compter 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.
EDIT:
Les détails suivants 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.