2012-08-02 4 views
4

110,000,000 개의 행과 8 개의 열 바로 아래에있는 큰 ido 파일을 읽고 싶습니다. 열은 2 개의 정수 열과 6 개의 논리 열로 구성됩니다. 구분 기호 "|"이 파일에서 사용됩니다. read.big.matrix을 사용해 보았는데 영원히 걸렸습니다. 나는 또한 dumpDf 시도하고 RAM이 다 떨어졌다. 나는 좋은 패키지라고 들었던 ff을 시험해 보았고 나는 실수로 고생 중이다. 나는이 표를 어떤 식 으로든 읽을 수 있다면 몇 가지 분석을하고 싶습니다. 누구든지 위대한 것이라고 제안했다면. 친절 감사, 로칸큰 텍스트 파일을 읽는 중

+6

[this] (http://stackoverflow.com/a/1820610/986817)를 참조하십시오. – Ryogi

+1

파일의 샘플을 제공 할 수 있습니까? (처음 5-10 줄)? –

+1

에는 ff에 대한 코드 및 오류가 포함되어 있습니다. – mdsumner

답변

8

의견을 보내 주셔서 감사합니다. 나는 왜 내가 오류가 작동하지 못하는지 알아낼 수 있었다. 아무도 내 바보 같은 실수를 할 수 없도록 모든 답변과 제안을 드리겠습니다.

우선, 나에게 제공 한 데이터에는 오류가 포함되어있어서 처음부터 실패 할 운명에 처해있었습니다. 동료가 다른 소프트웨어에서이 소프트웨어를 발견 할 때까지 나는 몰랐다. 정수가 들어있는 열에는 몇 가지 문자가있어서 read.table.ff 패키지가 데이터 세트를 읽으려고 할 때 어떻게 든 혼란스러워하거나 모르겠습니다. 비록 내가 데이터의 또 다른 샘플을 받았지만 16,000,000 개의 행과 8 개의 열이 정확한 항목으로 주어졌지만 완벽하게 작동했습니다.

setwd("D:/data test") 
library(ff) 
ffdf1 <- read.table.ffdf(file = "test.ido", header = TRUE, sep = "|") 

이 시간 내 주셔서 모두 감사하고 당신이 대답에 대한 질문이 있으면 물어 주시기 바랍니다 내가 도와 최선을 다하겠습니다 다음 읽기 약 30 초 걸렸으로 내가 실행 코드는 .

2

분석을 위해 모든 데이터가 정말로 필요합니까? 어쩌면 데이터 세트를 집계 할 수 있습니다 (분 값에서 일일 평균까지). 이 집계는 한 번만 수행하면되며 청크로 수행 될 수 있습니다. 이런 식으로 모든 데이터를 한 번에 메모리에로드해야합니다.

청크 읽기는 scan을 사용하여 수행 할 수 있으며 중요한 인수는 skipn입니다. 또는 데이터를 데이터베이스에 저장하고 그런 식으로 청크를 추출하십시오. plyr 패키지의 기능을 사용하여 청크를 병렬로 실행할 수도 있습니다. 예를 들어 내 this blog post을 참조하십시오.

관련 문제