Ich lese Daten aus einer CSV-Datei mit data.table::fread
auf einem Windows 10-Computer. Die Daten werden ordnungsgemäß durch read.csv
eingelesen; Wenn ich jedoch fread
verwenden, um die Daten einzulesen, enden alle abschließenden Spalten in jeder Zeile der resultierenden data.table in \r
, was vermutlich auf einen Wagenrücklauf hinweist. Dies führt dazu, dass numerische Felder einen Zeichentyp erhalten. (Anstelle eines numerischen Literals 4.53
enthält eine Zelle mit Zeilenende ein Zeichenliteral 4.53\r
.)Warum gibt der Einfügeschlaufe für das Einfügen von fread ( r) in data.table zurück?
Warum tritt dieser Fehler auf? Gibt es eine Möglichkeit, dies direkt durch den Funktionsaufruf fread
zu lösen?
aktualisieren
ich folgendes erhalten, wenn der verbose = TRUE
Parameter
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
Sie können versuchen, ein reproduzierbares Beispiel wie 'fread (" a \ n1 \ r \ n2 \ r \ n ")' vielleicht? In diesem Fall sind die End-of-Line-Indikatoren inkonsistent und führen zu dem angezeigten Verhalten. – Frank
Dies führt tatsächlich zu dem Fehler in R. Wenn ich die Datei in Notepad ++ lese, hat die Datei ein LF nur in der ersten Zeile und CR LF (\ r \ n) in nachfolgenden Zeilen. Bitte zögern Sie nicht, eine Antwort zu senden, damit ich Ihre Antwort akzeptieren kann. – Bob
Wissen Sie, ob dies bei CSV-Dateien häufig vorkommt? – Bob