Sembra molto intuitivo che i file .rdata possano essere il formato di file a digiuno per il caricamento di R, ma quando si analizzano alcuni dei post dello stack sembra che sia stata prestata maggiore attenzione al miglioramento dei tempi di caricamento per .csv o altri formati. C'è una risposta definitiva?Quali sono i formati di file letti in R più veloci?
risposta
Non una risposta definitiva, ma al di sotto sono momenti che ci voleva per caricare lo stesso dataframe letto come un file .tab
con utils::read.delim()
, readr::read_tsv()
, data.table::fread()
e come un file binario .RData
cronometrato utilizzando la funzione di system.time()
:
.tab
con utils::read.delim
system.time(
read.delim("file.tab")
)
# user system elapsed
# 52.279 0.146 52.465
.tab
con readr::read_tsv
system.time(
read_tsv("file.tab")
)
# user system elapsed
# 23.417 0.839 24.275
.tab
con data.table::fread
Su richiesta dello stesso file ~ 500MB caricato in un vesciche 3 secondi @Roman s':
system.time(
data.table::fread("file.tab")
)
# Read 49739 rows and 3005 (of 3005) columns from 0.400 GB file in 00:00:04
# user system elapsed
# 3.078 0.092 3.172
.RData
file binario dello stesso dataframe
system.time(
load("file.RData")
)
# user system elapsed
# 2.181 0.028 2.210
Chiaramente non definitivo (dimensione del campione = 1!) Ma nel mio caso con un frame di dati da 500 MB:
- binario
.RData
è più veloce data.frame::fread()
è un secondo vicinoreadr::read_tsv
è un ordine di grandezza più lentoutils::read.x
è più lenta e solo la metà veloce comereadr
Mi chiedo come "fread" possa gestire questo? Ti va di provarlo? –
L'ha gestito in modo follemente veloce @ RomanLuštrik – Phil
@Phil Sono abbastanza sicuro che la specifica di 'colClasses' migliorerà il tempo di lettura dei file tsv. Potrebbe valere la pena includere questo confronto. – nrussell
- 1. Quali sono i formati di file di crittografia standard?
- 2. I costitutori sono più veloci?
- 3. Perché i tipi sigillati sono più veloci?
- 4. quali sono i formati di file in grado di supportare il lettore video Android in Android?
- 5. I riferimenti o i puntatori sono più veloci?
- 6. I rifiuti raccolti sono più veloci del C++?
- 7. Quali PEP devono essere letti?
- 8. Quali formati di immagine sono supportati da CANVAS in html5?
- 9. I modelli PMML possono essere letti in R?
- 10. Quali sono i formati di file immagine supportati per la visualizzazione su iPhone?
- 11. Formati di file 3D per i giochi
- 12. Perché i campi pubblici sono più veloci delle proprietà?
- 13. I componenti sono veramente più veloci rispetto ai modelli?
- 14. _ftol2_sse, ci sono opzioni più veloci?
- 15. Quali sono le differenze tra questi formati "aperti"
- 16. Quali sono i modi per modificare una funzione in R?
- 17. Quali sono i plugin Xcode più utili?
- 18. R: quali sono gli slot?
- 19. ffmpeg: quali formati di file supportano l'utilizzo di stdin?
- 20. Quali sono i punti dei file di intestazione in C?
- 21. quali formati audio sono supportati dal browser Android?
- 22. Quali formati di video verranno riprodotti nell'emulatore?
- 23. Formati di file audio supportati in iPhone
- 24. Cosa sono i file più veloci, piatti o un database MySQL RAM?
- 25. XFL - Quali sono i file ./bin/*.dat?
- 26. Quali sono i valori possibili per i descrittori di file?
- 27. Python: perché * e ** sono più veloci di/e sqrt()?
- 28. quali sono gli strumenti java più veloci per generare schermi CRUD da uno schema DB?
- 29. Quali sono i formati appropriati per le proprietà di http://schema.org/GeoShape?
- 30. Quali sono tutti i personaggi di escape?
Questo è molto difficile, domanda per rispondere correttamente. È necessario prendere in considerazione la possibilità di convertire qualsiasi funzione di lettura dei file in codice c- o Fortran compilato e ottimizzato, ad esempio. Inoltre, poiché in genere non è possibile scegliere il formato di input a meno che non abbiate generato i file ** in R ** in primo luogo, non sono sicuro che la risposta sia davvero importante! –