큰 텍스트 파일 (475,000,000 줄)이 있습니다. 나는 그것을 읽지 않고 파일의 행 수를 빨리 얻고 싶다. 이 행 번호를 추출하는 방법은 전체를 읽지 않고 있습니까전체 파일을 읽지 않고 fread에서 행 수 추출
fread('D:/text_file.txt',select=1,colClasses="character")
Read 7.1% of 472933221 rows #number of rows appears after 10 seconds
: data.table
에서
fread
실제로는 매우 빠른 속도 (~ 10 초 정도의 시간)이 전체 파일을 읽을 진행하기 전에 행 번호와 함께 제공 나중에 파일? 기록을 위해 전체 파일을 읽는 데 36 초가 걸립니다.
countLines
을 R.utils
에서 시도했지만 53 초가 걸렸습니다. 차이점은 fread
에는 하나의 열만 선택하고 countLines는 모든 것을 읽는 옵션이있을 수 있습니다.
R.utils::countLines("D:/text_file.txt") #53 seconds
는 또한 같은 다른 Windows 방법을 시도 :
find /v /c "" "D:\text_file.txt" #takes 1 minute 50 seconds
grep "^" D:\text_file.txt | wc -l #takes 2 minutes
이 작업을하지만, 그들은 빨리 fread
로 아니에요. 나는 윈도우에있어.
시도'화장실 -l filename' 윈도우 Rtools에서 발견. –
C에 작은 함수를 작성하려고 했습니까? 그것은 매우 쉽고 빠르다. – nicola
@ G.Grothendieck 감사합니다. 매력처럼 작동합니다. 'shell ('wc.exe -l "D : /text_file.txt"', intern = TRUE)' –