Problem beim importieren von datasets: `Fehler in scan(...): Zeile 1 nicht über 145 Elemente`
Ich versuche zu importieren, meinen Datensatz in R mit read.table()
:
Dataset.df <- read.table("C:\\dataset.txt", header=TRUE)
Aber ich bekomme die folgende Fehlermeldung:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 1 did not have 145 elements
Was bedeutet das und wie kann ich es beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler ist ziemlich selbsterklärend. Es scheint zu sein, fehlende Daten in der ersten Zeile der Daten-Datei (oder zweiten Zeile, wie der Fall sein kann, da Sie mit
header = TRUE
).Hier ein mini Beispiel:
R erkennt automatisch, dass Sie sollten erwarten, rownames plus zwei Spalten (3 Elemente), aber es nicht finden 3 Elemente auf der Linie 2, so erhalten Sie eine Fehlermeldung:
Blick auf die Daten-Datei und sehen, ob es tatsächlich ein problem:
Manuelle Korrektur erforderlich sein könnten, oder können wir davon ausgehen, dass der Wert der erste Wert in der Zweiten Zeile sollte in der ersten Spalte, die anderen Werte sollten
NA
. Wenn dies der Fall ist,fill = TRUE
ist genug, um Ihr problem zu lösen.R ist auch schlau genug, um es herauszufinden, wie viele Elemente es braucht, auch wenn rownames fehlen:
Beim laufen in diesen Fehler, und die Beurteilung von meinem dataset, das anscheinend keine fehlenden Daten, entdeckte ich, dass ein paar meiner Einträge hatte das Sonderzeichen"#", die entgleist, die Daten zu importieren. Nachdem ich entfernt die "#" aus der beanstandeten Zellen, die Daten importiert, ohne Frage.
read.table(..., comment.char = "")
zum ausschalten der interpretation von Kommentaren in der Datei.Traf ich dieses Problem beim importieren von einigen Dateien aus dem Add-Gesundheit-Daten in R (siehe: http://www.icpsr.umich.edu/icpsrweb/ICPSR/studies/21600?archive=ICPSR&q=21600 ) beispielsweise den folgenden Befehl zum Lesen der DS12 Daten-Datei im tab-getrennt .tsv-format wird den folgenden Fehler generiert:
Es scheint eine leichte Formatierung Problem mit einigen Dateien, die bewirkt, dass R zum ablehnen der Datei. Zumindest ein Teil des Problems scheint zu sein, die gelegentliche Verwendung von Anführungszeichen statt einem Apostroph, die bewirkt, dass eine ungerade Anzahl von Anführungszeichen Zeichen in einer Zeile.
Nachdem das hantieren, habe ich festgestellt, dass drei mögliche Lösungen:
Öffnen Sie die Datei in einem text-editor und suchen/ersetzen Sie alle Instanzen von ein Anführungszeichen " mit nichts. In anderen Worten, löschen Sie alle doppelten Anführungszeichen. Für dieses tab-getrennte Daten, bedeutete dies nur, dass einige wörtliche Auszüge der Kommentare von Personen, die nicht mehr in Anführungszeichen, das war ein nicht-Thema für meine Datenanalyse.
Mit gespeicherten Daten ICPSR (siehe link oben) oder in anderen Archiven eine andere Lösung ist der download der Daten in ein neues format. Eine gute option in diesem Fall ist das herunterladen der Stata-version des DS12 und öffnen Sie es dann mit dem Lesen.dta-Befehl wie folgt:
Eine Verwandte Lösung/hack zu öffnen .tsv-Datei in Excel, und speichern Sie Sie erneut als tab-getrennte text-Datei. Dies scheint zu reinigen, was die Formatierung der Ausgabe lässt R unglücklich.
Keines dieser ideale, dass Sie nicht ganz das problem lösen, die in R mit dem original .tsv-Datei, aber die Daten Gerangel erfordert oft den Einsatz mehrerer Programme und Formate.
Wenn Sie mit linux arbeiten, und die Daten-Datei von windows.
Ist es wahrscheinlich, weil das Zeichen ^M
Finden und löschen.
fertig!
Für andere, die können nicht eine Lösung finden und die Daten zu kennen ist nicht fehlende Elemente:
Habe ich dieses Problem, wenn ich Excel 2013-Dateien zu speichern, wie .csv und dann versuchen, laden Sie Sie in R mit read.Tabelle(). Die Abhilfe, die ich gefunden habe ist zum einfügen der Daten direkt aus Excel in eine .txt-Dokument, dann " öffnen mit:
Ich hoffe, das hilft.
Dass ich auf diese Fehlermeldung, wenn ich hatte eine Zeile.Namen="id" (pro die tutorial) mit einer Spalte namens "id".
Neben all den Anleitungen, die oben erwähnt,können Sie auch überprüfen Sie alle Daten.
Wenn es Leerzeichen zwischen den Wörtern sind, müssen Sie ersetzen Sie Sie mit
"_"
.Jedoch, dass, wie ich mein eigenes problem lösen.
Hash
#
symbol erzeugen diesen Fehler, wenn Sie können, entfernen Sie die#
vom Anfang der Spalte name, es könnte das problem beheben.Grundsätzlich, wenn die Spalte name beginnt mit
#
im zwischen den Zeilenread.table()
erkennen, die als Ausgangspunkt für diese Zeile.Einer meiner kategorischen Variablen wurde mit einer alternative, die multi-string ("kein Ereignis"). Wenn ich Lesen.Tabelle, es wird davon ausgegangen, dass die Leerzeichen nach den ersten string bedeutete das Ende der Daten zeigen und die zweite Zeichenfolge geschoben wurde, um die nächste variable. Ich verwendet, sep= "\t" um das problem zu lösen. Ich war mit RStudio in ein Mac-OX-Umgebung.
Die Vorherige Lösung war zu transformieren .txt-Dateien zu .csv-in Excel, und öffnen Sie anschließend diese mit Lesen.csv-Funktion.