Sono sorpreso dal tempo necessario per leggere R in una riga specifica da un file di grandi dimensioni (11 GB +). Ad esempio:Leggere in modo efficiente righe specifiche da file di grandi dimensioni in 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
Il terminale OSX può restituire una linea specifica in un istante. Qualcuno sa un modo più efficiente in R?
È inefficiente perché 'read.table' chiama' readLines (file, salta) 'che effettivamente analizza le righe e legge in R, quindi le getta via. Per essere più efficiente penso che dovresti correggere qualche codice C che 'seek()' d attraverso la connessione fino a quando non hai visto abbastanza newline (e dovresti usare il buffering in modo appropriato per essere veloce) – hadley