2014-03-04 52 views
12

Ich habe eine CSV, wenn ich zu read.csv() versuchen, die ich Datei erhalten die Warnung Warnmeldung:In read.table(): unvollständige letzte Zeile von readTableHeader gefunden

In read.table(file = file, header = header, sep = sep, quote = quote, : 
    incomplete final line found by readTableHeader on ... 

Und ich das Problem nicht isolieren kann, trotz StackOverflow und R-help nach Lösungen durchsuchen.

Dies ist die Dropbox-Link für die Daten: https://www.dropbox.com/s/h0fp0hmnjaca9ff/PING%20CONCOURS%20DONNES.csv

+5

Es ist nur eine Warnung, damit Sie sich nicht wirklich darum kümmern müssen. Wenn Sie eine leere Zeile am Ende der Datei hinzufügen, geht es weg –

+0

Ja, es funktioniert Danke – user3351370

Antwort

0

Dies ist nicht eine CSV-Datei ist, ist jede Zeile eine Spalte, können Sie es manuell analysieren kann, zB:

file <- '~/Downloads/PING CONCOURS DONNES.csv' 
lines <- readLines(file) 
columns <- strsplit(lines, ';') 
headers <- sapply(columns, '[[', 1) 
data <- lapply(columns, '[', -1) 
df <- do.call(cbind, data) 
colnames(df) <- headers 
print(head(df)) 

Beachten Sie, dass können Sie Ignoriere die Warnung, da das letzte Zeilenende fehlt.

+0

Vielen Dank für Ihre Hilfe Warum ist es nicht eine CSV-Datei? – user3351370

+0

Was wir normalerweise als CSV-Datei bezeichnen, hat eine Zeile pro Zeile der Tabelle. Hier haben Sie eine Zeile pro Spalte. –

14

Wie von Hendrik Pon erläutert, zeigt die Nachricht an, dass die letzte Zeile der Datei nicht mit einem End of Line (EOL) -Zeichen (Zeilenvorschub (\ n) oder Wagenrücklauf + Zeilenvorschub (\ r \ n)) endet .

Die Abhilfe ist einfach:

  • Öffnen Sie die Datei
  • Navigieren Sie zu der letzten Zeile der Datei
  • Setzen Sie den Cursor das Ende der Zeile
  • Press Return/Eingabe
  • Speichern Sie die Datei

so hier ist Ihre Datei ohne wa rning

df=read.table("C:\\Users\\Administrator\\Desktop\\tp.csv",header=F,sep=";") 
df 
    V1    V2    V3    V4    V5    V6    V7    V8    V9    V10 
1 Date 20/12/2013 09:04 20/12/2013 09:08 20/12/2013 09:12 20/12/2013 09:16 20/12/2013 09:20 20/12/2013 09:24 20/12/2013 09:28 20/12/2013 09:32 20/12/2013 09:36 
2 1   1,3631   1,3632   1,3634   1,3633   1,363   1,3632   1,3632   1,3632   1,3629 
3 2   0,83407   0,83408   0,83415   0,83416   0,83404   0,83386   0,83407   0,83438   0,83472 
4 3   142,35   142,38   142,41   142,4   142,41   142,42   142,39   142,42   142,4 
5 4   1,2263   1,22635   1,22628   1,22618   1,22614   1,22609   1,22624   1,22643   1,2265 

Aber ich glaube, Sie auf diese Weise nicht lesen sollte, weil Sie wieder haben, um den Datenrahmen, dank neu zu gestalten.

2

Ich konfrontiert das gleiche Problem beim Erstellen einer Datenmatrix im Editor. So kam ich in die letzte Zeile der Datenmatrix und drückte Enter. Jetzt habe ich eine "n" -Zeilen-Datenmatrix und eine neue Leerzeile mit dem Cursor am Anfang der "n + 1" -Zeile. Problem gelöst.

1

Ich hatte das gleiche Problem mit .xls-Dateien. Meine Lösung besteht darin, die Datei als tabulatorbegrenzte .txt zu speichern. Dann können Sie die Erweiterung .txt auch manuell in .xls ändern. Dann können Sie den Datenrahmen mit read.delim öffnen.

Dies ist sehr unhöflich, um das Problem trotzdem zu überwinden.