2010-03-29 38 views
45

Có cách nào để chuyển đổi tệp dta sang CSV không?Chuyển đổi tệp Stata .dta thành CSV mà không cần phần mềm Stata

Tôi không có phiên bản Stata nên tôi không thể làm gì đó như lưu dưới dạng tệp CSV.

+2

tôi chắc chắn rằng có một cách . Nếu định dạng của tập tin .DTA được chỉ định, nó có thể trở thành một bài tập lập trình đơn giản –

+1

đó là nhị phân, tôi không chắc chắn làm thế nào để có được nó ra khỏi đó – Brian

Trả lời

5

Tôi chưa thử, nhưng nếu bạn biết Perl, bạn có thể sử dụng mô-đun Parse-Stata-DtaReader để chuyển đổi tệp cho bạn.

Các module có một công cụ dòng lệnh dta2csv, có thể "chuyển đổi Stata 8 và Stata 10 file .dta để csv"

42

Bạn có thể thử làm việc đó thông qua R. Đối với Stata < = 13 - có hai tùy chọn.

Sử dụng haven package để đọc các tập dữ liệu và sau đó bạn chỉ cần ghi nó vào tập tin CSV bên ngoài:

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

Ngoài ra, hãy truy cập the link chỉ bằng của huntaub trong một bình luận dưới đây.


Đối với Stata < = 12 bộ dữ liệu foreign gói cũng có thể được sử dụng

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

làm việc như một say mê! – zpesk

+1

Lưu ý rằng kỹ thuật này không hoạt động nếu bạn đang sử dụng các tệp Stata 13 '.dta'. Bạn nên sử dụng các kỹ thuật trong câu hỏi này [http://stackoverflow.com/questions/23899009/read-stata-file-in-r). – huntaub

+0

@huntaub Cảm ơn huntaub, câu trả lời cập nhật để làm rõ rằng là 12 xuống. – radek

1

StatTransfer là một chương trình mà di chuyển dữ liệu dễ dàng giữa Stata, Excel (hoặc csv), SAS, vv Nó là rất dễ thân thiện với người dùng (không yêu cầu kỹ năng lập trình). Xem www.stattransfer.com

Nếu bạn sử dụng chương trình chỉ lưu ý rằng bạn sẽ phải chọn "ASCII/Văn bản - Delimited" để làm việc với tập tin .csv hơn là .xls

+1

Khoản phí này được thanh toán nhưng bạn có thể tải xuống để dùng thử. – vsingh

6

Bạn có thể làm điều đó trong StatTransfer , R hoặc perl (như đã đề cập bởi những người khác), nhưng StatTransfer có chi phí $$$ và R/Perl có một đường cong học tập.
Có một miễn phí, menu điều khiển số liệu thống kê từ chương trình phần mềm thống kê AM có thể mở và chuyển đổi Stata .dta từ tất cả các phiên bản của Stata, xem:

http://am.air.org/

+4

BTW, đây là sự phân tích của Stata về cách một tệp .dta được cấu trúc, có thể hữu ích cho việc trích xuất các phần tử dữ liệu: http://www.stata.com/help.cgi?dta –

3

Phương pháp R sẽ làm việc đáng tin cậy, và nó đòi hỏi ít kiến ​​thức về R. Lưu ý rằng việc chuyển đổi bằng cách sử dụng gói nước ngoài sẽ bảo toàn dữ liệu, nhưng có thể giới thiệu sự khác biệt. Ví dụ: khi chuyển đổi bảng không có khóa chính, khóa chính và các cột được liên kết sẽ được chèn vào trong quá trình chuyển đổi.

Từ http://www.r-bloggers.com/using-r-for-stata-to-csv-conversion/ Tôi khuyên bạn nên:

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

Đối với những người có Stata (mặc dù hỏi không), bạn có thể sử dụng này:

outsheet tạo ra một tập tin được phân định, do đó bạn cần phải xác định các comma tùy chọn như dưới đây

outsheet [varlist] using file.csv , comma 

cũng vậy, nếu bạn muốn loại bỏ nhãn (được bao gồm theo mặc định

outsheet [varlist] using file.csv, comma nolabel 

tip mũ để:

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

41

Các thẳng thắn-incredible thư viện dữ liệu phân tích cho Python gọi Pandas có chức năng đọc file Stata.

Sau khi cài đặt Pandas bạn chỉ có thể làm:

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

tuyệt vời!

+1

tuyệt vời, cảm ơn bạn rất nhiều! – albert

+1

Chà, tôi không thể tin rằng Pandas ủng hộ Stata: O – ratskin

1

Một cách khác để chuyển đổi giữa khá nhiều bất kỳ định dạng sử dụng R:

Cài đặt gói rio.

tải thư viện rio, sau đó sử dụng convert lệnh:

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

Phương pháp này cho phép bạn chuyển đổi giữa nhiều định dạng - Thông tin thêm về các R-project rio page

+0

Tôi chắc chắn rằng nó hoạt động tốt cho những người đã trải nghiệm với R, nhưng đối với những người không (như tôi), điều này có thể sẽ gây thất vọng. Nó đã cho tôi một giờ cộng với Googling và thử-và-lỗi để tìm ra tất cả các gói khác nhau mà bạn phải cài đặt trước khi thực sự hoạt động. –

+0

@KennyLJ Tôi mới tham gia R và thấy điều này rất dễ dàng. Chỉ cần chạy 'install.packages (" rio ")' và đã tốt. –

Các vấn đề liên quan