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"
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!
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")
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:
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",
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 = ",")
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 utilisantinstall.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 .
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
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.
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.
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: