2016-08-08 2 views
2

10GB .dta Stata 파일이 있는데 64 비트 R 3.3.1로 읽으려고합니다. 가상 컴퓨터에서 약 130GB의 RAM (4TB HD)을 사용하고 있으며 .dta 파일은 약 300 만 개의 행과 400 ~ 800 개의 변수 사이에 있습니다.R : RAM없이 큰 .dta 파일을 빨리 읽는 방법 제한 사항

data.table()은 .txt 및 .csv 파일을 읽는 가장 빠른 방법이지만 누구에게나 큰 .dta 파일을 R으로 읽는 것에 대한 권장 사항이 있습니까? Stata를 .dta 파일로 읽는 것은 파일을 열기 전에 작업 메모리를 최대로 설정해야하지만 최대 20-30 초가 필요합니다 (최대 100GB로 설정).

Stata에서 .csv로 가져 오기를 시도하지는 않았지만 Stata로 파일을 만지지 않기를 바랍니다. 해결책은 Using memisc to import stata .dta file into R을 통해 발견되었지만 RAM이 부족하다고 가정합니다. 필자의 경우 파일 작업에 충분한 RAM이 있어야합니다.

+1

에 STATA 데이터 세트를 읽는 가장 빠른 패키지를 것으로 보여, 당신은 변환 할 수 있습니다 dta 파일을 csv 파일로 복사하십시오. SO 링크 [Stata 소프트웨어가없는 CSV로 Stata .dta 파일을 변환] (http://stackoverflow.com/questions/2536047/convert-stata-dta-file-to-csv-without-stata-software)는 이것을 하나로 설명합니다 대답 (최고 대답이 아님). – steveb

+0

램이 충분하다면'foreign :: read.dta()'는 작동해야하지만 최신 stata 형식에서는 작동하지 않습니다. – shayaa

+0

아마 내가 잘 발음해야합니다. 목표는 R을 사용하여 빨리 처리하는 것입니다. Read.dta는 매우 느리고 파일을 .csv로 변환하지 않으려합니다. – QuestionAnswer

답변

1

R에서 대형 Stata 데이터 세트를로드하는 가장 빠른 방법은 readstata13 패키지를 사용하는 것입니다. 내가 foreign, readstata13의 성능을 비교했으며, haven 큰 데이터 세트 in this post에 패키지와 결과가 반복 readstata13는 R. 당신은 파이썬에 익숙한 경우

2

나는 haven R package을 권장합니다. foreign는 달리, 그것은 최신 STATA 형식을 읽을 수 있습니다

library(haven) 
data <- read_dta('myfile.dta') 

는 다른 옵션에 비해되지만 R에 STATA 파일을 읽기위한 당신의 선택은 다소 제한 얼마나 빨리 확실하지. 제 생각에 haven은 C 라이브러리를 래핑하므로 아마도 가장 빠른 옵션 일 것입니다.

관련 문제