Sto leggendo i dati da un file .csv utilizzando data.table::fread
su un computer Windows 10. I dati vengono letti correttamente tramite read.csv
; tuttavia, quando uso fread
per leggere i dati, tutte le colonne finali in ogni riga del data.table risultante termina in un \r
, presumibilmente indicando un ritorno a capo. Questo fa sì che i campi numerici abbiano un tipo di dati carattere. (Invece di un valore letterale numerico 4.53
, una cella di fine riga conterrà un carattere letterale 4.53\r
.)Perché l'inserimento di carriage restituisce ( r) in data.table?
Perché si verifica questo errore? C'è un modo per risolvere direttamente questo attraverso la chiamata di funzione di fread
?
Aggiornamento
ricevo il seguente quando il parametro verbose = TRUE
viene utilizzato
Input contains no \n. Taking this to be a filename to open
File opened, filesize is 0.000001 GB.
Memory mapping ... ok
Detected eol as \n only (no \r afterwards), the UNIX and Mac standard.
Positioned on line 1 after skip or autostart
This line is the autostart and not blank so searching up for the last non-blank ... line 1
Detecting sep ... ','
Detected 7 columns. Longest stretch was from line 1 to line 13
Starting data input on line 1 (either column names or first row of data). First 10 characters: subjectNum
All the fields on line 1 are character fields. Treating as the column names.
Count of eol: 13 (including 1 at the end)
Count of sep: 72
nrow = MIN(nsep [72]/ncol [7] -1, neol [13] - nblank [1]) = 12
Type codes ( first 5 rows): 1131414
Type codes: 1131414 (after applying colClasses and integer64)
Type codes: 1131414 (after applying drop or select (if supplied)
Allocating 7 column slots (7 - 0 dropped)
Read 12 rows. Exactly what was estimated and allocated up front
0.000s ( 0%) Memory map (rerun may be quicker)
0.001s (33%) sep and header detection
0.000s ( 0%) Count rows (wc -l)
0.002s (67%) Column type detection (first, middle and last 5 rows)
0.000s ( 0%) Allocation of 12x7 result (xMB) in RAM
0.000s ( 0%) Reading data
0.000s ( 0%) Allocation for type bumps (if any), including gc time if triggered
0.000s ( 0%) Coercing data already read in type bumps (if any)
0.000s ( 0%) Changing na.strings to NA
0.003s Total
Puoi provare a creare un esempio riproducibile, come 'fread (" a \ n1 \ r \ n2 \ r \ n ")' forse? In questo caso, gli indicatori di fine riga sono incoerenti, portando al comportamento che vedi. – Frank
Questo porta all'errore in R. Quando leggo il file in Notepad ++, il file ha un LF solo sulla prima riga e CR LF (\ r \ n) su righe successive. Non esitate a inviare una risposta in modo che io possa accettare la vostra risposta. – Bob
Sai se questo è un evento comune con i file .csv? – Bob