Есть ли способ преобразовать файл dta
в csv
?
У меня не установлена версия Stata на моем компьютере, поэтому я не могу сделать что-то вроде:
File --> "Save as csv"
Есть ли способ преобразовать файл dta
в csv
?
У меня не установлена версия Stata на моем компьютере, поэтому я не могу сделать что-то вроде:
File --> "Save as csv"
В откровенно невероятной библиотеке анализа данных для 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 & 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")
Я не пробовал, но если вы знаете Perl, вы можете использовать модуль Parse-Stata-DtaReader, чтобы преобразовать файл для вас.
Модуль имеет инструмент командной строки dta2csv, который может "конвертировать файлы Stata 8 и Stata 10.dta в csv"
Вы можете сделать это в StatTransfer, R или perl (как упоминалось другими), но StatTransfer стоит $$$, а у R/Perl есть кривая обучения.
Существует бесплатная, управляемая меню программа статистики от AM Statistical Software, которая может открывать и преобразовывать Stata.dta из всех версий Stata, см.:
Еще один способ преобразования практически любого формата данных с использованием R - это пакет rio.
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 = ",")
StatTransfer - это программа, которая легко перемещает данные между Stata, Excel (или csv), SAS и т.д. Она очень удобна для пользователя (не требует навыков программирования). См. Www.stattransfer.com
Если вы используете программу, просто отметьте, что вам нужно будет выбрать "ASCII/Text-Delimited" для работы с CSV файлами, а не с .xls
SPSS также может читать файлы .dta и экспортировать их в .csv, но это стоит денег. PSPP, версия SPSS с открытым исходным кодом, которая является грубой, также может читать/экспортировать файлы .dta.
В Python можно использовать statsmodels.iolib.foreign.genfromdta
для чтения наборов данных Stata. Кроме того, имеется также оболочка вышеупомянутой функции, которую можно использовать для чтения файла Stata непосредственно из Интернета: statsmodels.datasets.webuse
.
Тем не менее, оба из вышеперечисленных опираются на использование pandas.io.stata.StataReader.data
, которое теперь является устаревшей функцией и устарело. Таким образом, новая функция pandas.read_stata
теперь должна всегда использоваться вместо этого.
Согласно исходному файлу из stata.py
, начиная с версии 0.23.0
, поддерживаются следующие:
Как уже отмечали другие, функцию 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.
Для тех, у кого есть Stata (хотя обманщик не делает этого), вы можете использовать это:
outheet создает файл с разделителями табуляции, поэтому вам нужно указать параметр comma
, как показано ниже
outsheet [varlist] using file.csv , comma
также, если вы хотите удалить метки (которые включены по умолчанию
outsheet [varlist] using file.csv, comma nolabel
подсказка для шляпы: