importar - Convierta un archivo dta a csv sin el software Stata
insheet stata (10)
El método R funcionará de manera confiable y requiere poco conocimiento de R. Tenga en cuenta que la conversión con el paquete externo conservará los datos, pero puede introducir diferencias. Por ejemplo, al convertir una tabla sin una clave principal, la clave principal y las columnas asociadas se insertarán durante la conversión.
De http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ Recomiendo:
library(foreign)
write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",")
¿Hay alguna manera de convertir un archivo dta
a un csv
?
No tengo una versión de Stata instalada en mi computadora, así que no puedo hacer algo como:
File --> "Save as csv"
En Python, uno puede usar statsmodels.iolib.foreign.genfromdta
para leer conjuntos de datos Stata. Además, también hay un contenedor de la función antes mencionada que se puede utilizar para leer un archivo Stata directamente desde la web: statsmodels.datasets.webuse
.
Sin embargo, ambos de los anteriores se basan en el uso de pandas.io.stata.StataReader.data
, que ahora es una función heredada y ha quedado en desuso. Como tal, la nueva función pandas.read_stata
ahora debería usarse en su lugar .
De acuerdo con el archivo fuente de stata.py
, a partir de la versión 0.23.0
, se 0.23.0
los siguientes:
Versiones del archivo de datos Stata:
- 104
- 105
- 108
- 111
- 113
- 114
- 115
- 117
- 118
Codificaciones válidas:
- ascii
- us-ascii
- latin-1
- latin_1
- iso-8859-1
- iso8859-1
- 8859
- cp819
- latín
- latin1
- L1
Como otros han notado, la función pandas.to_csv
se puede usar para guardar el archivo en el disco. Una función relacionada numpy.savetxt
también puede guardar los datos como un archivo de texto.
EDITAR:
Los siguientes detalles provienen de la help dtaversion
en 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.
La biblioteca de análisis de datos francamente increíble para Python llamada Pandas
tiene una función para leer archivos Stata.
Después de instalar Pandas
, puedes hacer lo siguiente:
>>> import pandas as pd
>>> data = pd.io.stata.read_stata(''my_stata_file.dta'')
>>> data.to_csv(''my_stata_file.csv'')
¡Asombroso!
No lo he intentado, pero si conoce Perl, puede usar el módulo Parse-Stata-DtaReader para convertir el archivo por usted.
El módulo tiene una herramienta de línea de comandos dta2csv , que puede "convertir archivos .tata Stata 8 y Stata 10. a csv"
Otra forma de convertir prácticamente cualquier formato de datos utilizando R es con el paquete de rio .
- Instale R desde CRAN y abra R
- Instale el paquete de
rio
usandoinstall.packages("rio")
Cargue la biblioteca de rio, luego use la función
convert()
:library("rio") convert("my_file.dta", "my_file.csv")
Este método le permite convertir entre muchos formatos (por ejemplo, Stata, SPSS, SAS, CSV, etc.). Utiliza la extensión de archivo para inferir el formato y cargar utilizando el paquete de importación apropiado. Se puede encontrar más información en la página de r-project rio .
Para aquellos que tienen Stata (aunque el asker no) puedes usar esto:
la hoja externa produce un archivo delimitado por tabuladores por lo que debe especificar la opción de comma
como se muestra a continuación
outsheet [varlist] using file.csv , comma
también, si desea eliminar etiquetas (que están incluidas por defecto)
outsheet [varlist] using file.csv, comma nolabel
punta de sombrero para:
Podrías intentar hacerlo a través de R. Para Stata <= 13 - hay dos opciones.
Utilice el paquete refugio para leer el conjunto de datos y luego simplemente escríbalo en un archivo CSV externo:
library(haven)
yourData = read_dta("path/to/file")
write.csv(yourData, file = "yourStataFile.csv")
Alternativamente, visite el enlace señalado por huntaub en un comentario a continuación.
Para Stata <= 12 conjuntos de datos paquete foreign también se puede utilizar
library(foreign)
yourData <- read.dta("yourStataFile.dta")
Puede hacerlo en StatTransfer, R o perl (como lo mencionaron otros), pero StatTransfer cuesta $$$ y R / Perl tiene una curva de aprendizaje.
Hay un programa de estadísticas gratuito impulsado por menús de AM Statistical Software que puede abrir y convertir Stata .dta desde todas las versiones de Stata, ver:
SPSS también puede leer archivos .dta y exportarlos a .csv, pero eso cuesta dinero. PSPP, una versión de código abierto de SPSS, que es difícil, también podría leer / exportar archivos .dta.
StatTransfer es un programa que mueve datos fácilmente entre Stata, Excel (o csv), SAS, etc. Es muy fácil de usar (no requiere conocimientos de programación). Vea www.stattransfer.com
Si usa el programa, solo tenga en cuenta que deberá elegir "ASCII / Texto - Delimitado" para trabajar con archivos .csv en lugar de .xls