2014-03-03 4 views
2

고정 폭 형식의 .txt 파일에서 테이블을 가져오고 있습니다. 이 표에는 약 100 개의 관측치와 200000 개의 선 (몇 줄 아래)이 있습니다. 과정을 가속화하기 위해고정 폭 형식 테이블 가져 오기 속도를 높이십시오.

col_width <- c(5,5,3,3,3,5,3,3,3,2, 
      3,3,3,2,3,2,2,3,2,3, 
      2,2,2,2,2,2,2,2,2,2, 
      2,5,2,2,2,2,2,2,2,2, 
      2,3,2,4,2,3,2,2,3,2, 
      2,7,2,6,2,6,2,6,2,6, 
      2,6,2,6,2,6,2,2,6,2, 
      6,2,6,2,6,2,6,2,2,4, 
      2,6,2,2,6,2,7,2,7,2, 
      3,2,5,2) 

df.h.tomsk <- read.fwf(path, 
         widths=col_width, 
         header=FALSE, 
         sep="\t", 
         nrows=200000, 
         comment.char="", 
         buffersize=5000) 

어떤 제안 (들) :

11111 2008 7 31 21 2008 8 1 21 3 4 6 18 4 7 0 12 0 0 0 0 0 1 0 0 0 0 0 0 0  5 0 0 7 5 0 1 0 2 0 0 0 0 0 0 2 0 0 0.0 5 14.9 0 14.9 0 14.0 0 16.5 0 14.9 0 15.6 0 15.3 0 0 15.6 0 15.6 0 17.6 0 16.1 0 17.10 0 1 97 0 0.60 0 1 15.1 0 986.6 0 1002.9 0 7 0 0.2 0 
11111 2008 8 1 0 2008 8 1 0 4 7 6 18 4 98 0 1 9 0 0 0 2 0 1 0 0 0 0 0 0 0  5 0 0 7 0 0 0 1 0 2 0 260 0 1 0 0 2 0 0 0.0 5 14.4 0 14.4 0 13.0 0 14.9 0 14.9 0 15.2 0 14.6 0 0 15.2 0 14.8 0 16.1 0 15.7 0 16.10 0 1 93 0 1.20 0 1 14.1 0 986.1 0 1002.4 0 7 0 0.5 0 
11111 2008 8 1 3 2008 8 1 3 5 10 6 18 4 98 0 1 3 0 0 0 1 0 0 0 0 0 0 0 0 0  5 0 0 7 5 0 1 0 2 0 200 0 1 0 0 4 0 0 0.0 5 25.8 0  7 14.4 0 26.0 0 26.0 0 19.8 0 17.0 0 0 19.8 0 15.2 0 20.1 0 20.1 0 17.10 0 1 74 0 6.00 0 1 15.1 0 984.5 0 1000.6 0 8 0 1.6 0 
11111 2008 8 1 6 2008 8 1 6 6 13 6 18 4 98 0 1 7 0 6 0 1 0 0 0 1 0 0 0 0 0 1000 0 1 0 7 5 0 1 0 2 0 230 0 2 0 0 8 0 0 0.0 5 36.0 0  5  5 40.0 0 36.0 0 23.7 0 17.4 0 0 23.7 0 19.8 0 24.6 0 24.0 0 14.80 0 1 51 0 14.50 0 1 12.8 0 983.9 0 999.7 0 6 0 0.6 0 
11111 2008 8 1 9 2008 8 1 9 7 16 6 18 4 96 0 0 9 0 9 0 0 0 0 0 2 0 0 0 0 0 1200 0 0 0 7 5 0 7 95 0 300 0 3 0 0 13 0 0 0.0 5 23.5 0  5  5 43.8 0 23.6 0 19.6 0 17.3 0 0 19.6 0 19.6 0 26.0 0 19.8 0 17.90 0 1 79 0 4.90 0 1 15.8 0 981.9 0 997.9 0 8 0 2.0 0 

지금, 나는 꽤 긴로드로 이어지는 다음 코드 (약 1 분)을 사용하고 있습니다? 예를 들어 fwf 형식으로 작업하는 data.table의 fread와 같은 것이 있습니까?

+0

[this] (http://stackoverflow.com/questions/1727772/quickly-reading-very-large-tables-as-dataframes- in-r) 관련성이 있습니다. –

+0

그래, 내가 봤어하지만 내 문제는 (아마도 아니 ;-) 고정 폭 형식입니다 – user2165907

+0

다른 옵션에 대한 [내 대답은 여기를 참조하십시오 (http://stackoverflow.com/a/18726054/1270695). 필자가 제안하는 옵션에는 스키마 파일이 필요하며, 스키마 파일을 가지고 있다면 매우 효율적입니다. – A5C1D2H2I1M1N2O1R2T1

답변

0

freadlibrary(data.table)으로 사용해 보셨나요? 파일의 일부 줄을 복사하여 복사하십시오.

+0

파일의 일부 라인을 복사하여 붙여 넣으십시오. (더미 데이터 포함) – pidosaurus

+0

예, 저는 fread를 시도했지만 모든 열의 너비를 정확하게 파악하지 못했습니다. – user2165907

+0

http://stackoverflow.com/questions/18720036/reading-big-data-with-fixed-width? – pidosaurus