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

Есть ли способ конвертировать dta подать в csv?

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

File --> "Save as csv"

12 ответов

Откровенно-невероятная библиотека анализа данных для 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')

Удивительно!

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

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

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

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


Для Stata <= 12 наборов данных также может использоваться сторонний пакет

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

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

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

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

http://am.air.org/

Другой способ преобразования практически любого формата данных с использованием 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.

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

С http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ я рекомендую:

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

В 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
  • 114
  • 115
  • 117
  • 118

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

  • ASCII
  • US-ASCII
  • латино-1
  • latin_1
  • изо-8859-1
  • iso8859-1
  • 8859
  • cp819
  • латынь
  • latin1
  • L1

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


РЕДАКТИРОВАТЬ:

Следующие детали поступают из help dtaversion в Стате 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.

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

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

Некоторые упоминали SPSS, StatTransfer, они платные. R и Python (также упомянутые выше) могут быть вашим выбором. Но лично я хотел бы порекомендовать Python, синтаксис намного более интуитивно понятен, чем R. Вы можете просто использовать несколько командных строк с Pandas в Python для чтения и экспорта большинства часто используемых форматов данных:

импортировать панд как pd

df = pd.read_stata('YourDataName.dta')

df.to_csv('YourDataName.csv')

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

PYTHON – ПРЕОБРАЗОВАТЬ ФАЙЛЫ STATA В КАТАЛОГЕ В CSV

      import glob
import pandas

path=r"{Path to Folder}"

for my_dir in glob.glob("*.dta")[0:1]:
    file = path+my_dir  # collects all the stata files
    # get the file path/name without the ".dta" extension
    file_name, file_extension = os.path.splitext(file)

    # read your data
    df = pandas.read_stata(file, convert_categoricals=False, convert_missing=True)

    # save the data and never think about stata again :)
    df.to_csv(file_name + '.csv')

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

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

outsheet [varlist] using file.csv , comma

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

outsheet [varlist] using file.csv, comma nolabel

шляпа совет:

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

Другие вопросы по тегам