2010-03-29 10 views
45

Esiste un modo per convertire un file dta in un file CSV?Converti file .data di Stata in CSV senza software Stata

Non ho una versione di Stata quindi non posso fare qualcosa come salvare come file CSV.

+2

Sono sicuro che ci sia un modo . Se il formato del file .DTA è specificato, può diventare un semplice esercizio di programmazione –

+1

è binario, non sono sicuro di come farlo uscire da lì – Brian

risposta

5

Non l'ho provato, ma se conosci Perl puoi usare il modulo Parse-Stata-DtaReader per convertire il file per te.

Il modulo dispone di uno strumento da riga di comando dta2csv, che può "convertire Stata 8 e Stata 10 file .dta al CSV"

42

si potrebbe provare a farlo attraverso R. Per Stata < = 13 - ci sono due opzioni.

Utilizzare il haven package per leggere il dataset e poi semplicemente scrivere a file CSV esterno:

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

In alternativa, visitare the link puntato da huntaub di in un commento qui sotto.


Per Stata < = 12 gruppi di dati pacchetto foreign può anche essere utilizzato

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

ha funzionato come un incantesimo! – zpesk

+1

Si noti che questa tecnica non funziona se si utilizzano i file '.dta' di Stata 13. Dovresti utilizzare le tecniche in [questo] (http://stackoverflow.com/questions/23899009/read-stata-file-in-r) domanda. – huntaub

+0

@huntaub Grazie a huntaub, risposta aggiornata per chiarire che è 12 verso il basso. – radek

1

StatTransfer è un programma che si muove facilmente i dati tra Stata, Excel (o csv), SAS, ecc E 'molto facile da usare (non richiede competenze di programmazione). Vedi www.stattransfer.com

Se si utilizza il programma solo notare che si dovrà scegliere "ASCII/Text - delimitato" a lavorare con i file .csv, piuttosto che .xls

+1

Questo è pagato ma puoi scaricare per provarlo. – vsingh

6

si può fare in StatTransfer , R o perl (come detto da altri), ma StatTransfer costa $$$ e R/Perl hanno una curva di apprendimento.
C'è un menù statistiche-driven programma gratuito, dal software di statistica AM che può aprire e convertire Stata .dta da tutte le versioni di Stata, si veda:

http://am.air.org/

+4

BTW, ecco la descrizione di Stata di come è strutturato un file .dta, che potrebbe essere utile per estrarre elementi di dati: http://www.stata.com/help.cgi?dta –

3

Il metodo R funziona in modo affidabile, ed è richiede una scarsa conoscenza di R. Si noti che la conversione utilizzando il pacchetto estero conserverà i dati, ma potrebbe introdurre differenze. Ad esempio, durante la conversione di una tabella senza una chiave primaria, la chiave primaria e le colonne associate verranno inserite durante la conversione.

Da http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ mi raccomando:

library(foreign) 
write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",") 
-11

Per coloro che hanno Stata (anche se il richiedente non) è possibile utilizzare questo:

outsheet produce un file delimitato da tabulazioni quindi è necessario specificare l'opzione comma come qui di seguito

outsheet [varlist] using file.csv , comma 

anche, se si desidera rimuovere le etichette (che sono incluse di default

outsheet [varlist] using file.csv, comma nolabel 

cappello a punta:

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

41

Il francamente incredibile libreria di dati-analisi per Python chiamato Pandas ha una funzione per leggere i file Stata.

Dopo aver installato Pandas solo si può fare:

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

Incredibile!

+1

meraviglioso, grazie mille! – albert

+1

Wow, non posso credere che Pandas supporti Stata: O – ratskin

1

Un altro modo di conversione tra quasi tutti i formati che utilizzano R:

Installare il pacchetto rio.

caricare la libreria rio, quindi utilizzare il comando convert:

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

Questo metodo consente di convertire tra diversi formati - maggiori informazioni sul R-project rio page

+0

Sono sicuro che questo funziona benissimo per chi ha già esperienza con R, ma per quelli che non lo sono (come me), questo sarà probabilmente frustrante. Mi ci sono voluti più di un'ora su Google e prova ed errore per capire tutti i diversi pacchetti che devi installare prima che funzioni. –

+0

@KennyLJ Sono nuovo di R e ho trovato questo molto semplice. Ho appena eseguito 'install.packages (" rio ")' ed è stato bello andare. –