Конвертировать файл dta в csv без программного обеспечения Stata - PullRequest
63 голосов
/ 29 марта 2010

Есть ли способ преобразовать файл dta в csv?

На моем компьютере не установлена ​​версия Stata, поэтому я не могу сделать что-то вроде:

File --> "Save as csv"

Ответы [ 10 ]

69 голосов
/ 15 сентября 2014

Откровенно невероятная библиотека анализа данных для Python под названием Pandas имеет функцию для чтения файлов Stata.

После установки Pandas вы можете просто сделать:

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

Потрясающе!

54 голосов
/ 06 мая 2010

Вы можете попробовать сделать это через R. Для Stata <= 13 - есть два варианта. </p>

Используйте пакет убежища , чтобы прочитать набор данных, а затем просто записать его во внешний файл CSV:

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

В качестве альтернативы посетите ссылку , указанную huntaub в комментарии ниже.


Для Stata <= 12 наборов данных <a href="http://cran.r-project.org/web/packages/foreign/index.html" rel="noreferrer"> иностранный пакет также может использоваться

library(foreign)
yourData <- read.dta("yourStataFile.dta")
7 голосов
/ 19 августа 2010

Вы можете сделать это в StatTransfer, R или Perl (как упомянуто другими), но StatTransfer стоит $$$, а R / Perl имеет кривую обучения.
Существует бесплатная, управляемая меню программа статистики от AMСтатистическое программное обеспечение, которое может открывать и конвертировать Stata .dta из всех версий Stata, см .:

http://am.air.org/

7 голосов
/ 29 марта 2010

Я не пробовал, но если вы знаете Perl, вы можете использовать модуль Parse-Stata-DtaReader для конвертации файла для вас.

Модуль имеет инструмент командной строки dta2csv , который может "конвертировать файлы Stata 8 и Stata 10 .dta в csv"

5 голосов
/ 24 марта 2016

Другой способ преобразования практически любого формата данных с использованием R - пакет rio .

  • Установите R из CRAN и откройте R
  • Установите пакет rio, используя install.packages("rio")
  • Загрузите библиотеку rio, затем используйте функцию convert():

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

Этот метод позволяет вам конвертировать между многими форматами (например, Stata, SPSS, SAS, CSV и т. Д.). Он использует расширение файла для определения формата и загрузки, используя соответствующий пакет импорта. Более подробную информацию можно найти на странице проекта R-rio .

5 голосов
/ 14 марта 2013

Метод R будет работать надежно, и он не требует особых знаний о R. Обратите внимание, что преобразование с использованием стороннего пакета сохранит данные, но может привести к различиям.Например, при преобразовании таблицы без первичного ключа первичный ключ и связанные с ним столбцы будут вставлены во время преобразования.-to-csv-преобразование / Я рекомендую:

library(foreign)
write.table(read.dta(file.choose()), file=file.choose(), quote = FALSE, sep = ",")
3 голосов
/ 25 июня 2010

StatTransfer - это программа, которая легко перемещает данные между Stata, Excel (или CSV), SAS и т. Д. Она очень удобна для пользователя (не требует навыков программирования). См. Www.stattransfer.com

Если вы используете программу, просто обратите внимание, что вам придется выбирать «ASCII / Text - Delimited» для работы с файлами .csv, а не .xls

1 голос
/ 22 мая 2018

В Python можно использовать statsmodels.iolib.foreign.genfromdta для чтения наборов данных Stata. Кроме того, имеется также оболочка вышеупомянутой функции, которую можно использовать для чтения файла Stata непосредственно из Интернета: statsmodels.datasets.webuse.

Тем не менее, оба из вышеперечисленных основаны на использовании pandas.io.stata.StataReader.data, который теперь является устаревшей функцией и устарел. Таким образом, новая функция pandas.read_stata теперь должна всегда использоваться вместо .

Согласно исходному файлу из stata.py, начиная с версии 0.23.0, поддерживаются следующие параметры:

Версии файла данных Stata:

  • 104
  • 105
  • 108
  • 111
  • 113
  • 115
  • 117
  • 118

Допустимые кодировки:

  • ascii
  • US-ASCII
  • латино-1
  • latin_1
  • ISO-8859-1
  • iso8859-1
  • 8859
  • cp819
  • латинский
  • latin1
  • L1

Как уже отмечали другие, функцию pandas.to_csv можно затем использовать для сохранения файла на диск. Связанная функция numpy.savetxt также может сохранять данные в виде текстового файла.


EDIT:

Следующая информация взята из help dtaversion в 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.
1 голос
/ 28 марта 2018

SPSS также может читать файлы .dta и экспортировать их в .csv, но это стоит денег. PSPP, версия SPSS с открытым исходным кодом, которая является грубой, также может читать / экспортировать файлы .dta.

0 голосов
/ 02 октября 2013

Для тех, у кого есть Stata (хотя у автора нет), вы можете использовать это:

outsheet создает файл с разделителями табуляции, поэтому необходимо указать параметр comma, как показано ниже

outsheet [varlist] using file.csv , comma

также, если вы хотите удалить ярлыки (которые включены по умолчанию

outsheet [varlist] using file.csv, comma nolabel

шляпный совет:

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

...