Jestem zaskoczony, jak długo trwa odczyt R w określonej linii z dużego pliku (11 GB +). Na przykład:Efektywne odczytywanie konkretnych linii z dużych plików do R
> t0 = Sys.time()
> read.table('data.csv', skip=5000000, nrows=1, sep=',')
V1 V2 V3 V4 V5 V6 V7
1 19.062 56.71047 1 16 8 2006 56281
> print(Sys.time() - t0)
Time difference of 49.68314 secs
Terminal OSX może natychmiast zwrócić określoną linię. Czy ktoś wie bardziej skuteczny sposób w R?
To nieefektywne, ponieważ 'read.table' nazywa' readLines (file, skip) ', które faktycznie parsuje linie i czyta do R, a następnie je odrzuca. Aby być bardziej wydajnym, myślę, że będziesz musiał poprawić kod C, który 'seek()' d przez połączenie, aż zobaczysz wystarczająco dużo nowych linii (i będziesz musiał użyć odpowiedniego buforowania, aby być szybkim) – hadley