81 votes

Convertir un fichier dta en csv sans logiciel Stata

Existe-t-il un moyen de convertir un dta vers 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 ça :

File --> "Save as csv"

2 votes

Je suis sûr qu'il y a un moyen. Si le format du fichier .DTA est spécifié, cela peut devenir un simple exercice de programmation.

1 votes

C'est binaire, je ne sais pas comment le sortir de là.

117voto

LondonRob Points 2075

La bibliothèque d'analyse de données pour Python, franchement incroyable, appelée Pandas possède une fonction pour lire les fichiers Stata.

Après avoir installé Pandas vous pouvez juste le faire :

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

Incroyable !

8 votes

Wow, je ne peux pas croire que Pandas supporte Stata :O

1 votes

Cela a certainement fonctionné pour moi. Très simple, peut être fait à partir de la ligne de commande, et totalement gratuit.

0 votes

Merci beaucoup !

60voto

radek Points 1653

Vous pourriez essayer de le faire par le biais de R :

Pour Stata <= 15, vous pouvez utiliser la fonction paquet de bienvenue pour lire le jeu de données et ensuite vous l'écrivez simplement dans un fichier CSV externe :

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

Vous pouvez également visiter le lien pointé par huntaub dans un commentaire ci-dessous.


Pour Stata <= 12 ensembles de données étranger peut également être utilisé

library(foreign)
yourData <- read.dta("yourStataFile.dta")

1 votes

Notez que cette technique ne fonctionne pas si vous utilisez Stata 13. .dta fichiers. Vous devez utiliser les techniques de ce question.

0 votes

@huntaub Merci huntaub, réponse mise à jour pour préciser que c'est 12 vers le bas.

1 votes

Note pour le grand débutant : commencez par library(haven)

7voto

eric.a.booth Points 513

Vous pouvez le faire avec 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 statique gratuit, piloté par menu, de AM Statistical Software, qui peut ouvrir et convertir les fichiers Stata .dta de toutes les versions de Stata, voir :

http://am.air.org/

4 votes

BTW, voici la décomposition de Stata sur la façon dont un fichier .dta est structuré, ce qui pourrait être utile pour extraire des éléments de données : stata.com/help.cgi?dta

6voto

ghostdog74 Points 86060

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

Le module dispose d'un outil en ligne de commande dta2csv qui peut "convertir les fichiers Stata 8 et Stata 10 .dta en csv".

4voto

Nels Points 21

La méthode R fonctionnera de manière fiable et ne nécessite que peu de connaissances de R. Notez que la conversion à l'aide du paquetage é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 = ",")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X