Подтвердить что ты не робот

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

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

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

File --> "Save as csv"
4b9b3361

Ответ 1

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

Потрясающе!

Ответ 2

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

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

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

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


Для Stata & lt; = 12 наборов данных можно использовать сторонний пакет package can also be used

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

Ответ 3

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

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

Ответ 4

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

http://am.air.org/

Ответ 5

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

Ответ 6

Метод 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 = ",")

Ответ 7

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

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

Ответ 8

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

Ответ 9

В 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
  • 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.

Ответ 10

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

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

outsheet [varlist] using file.csv , comma

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

outsheet [varlist] using file.csv, comma nolabel

подсказка для шляпы:

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