Ich versuche, eine Textdatei mit unterschiedlichen Zeilenlängen zu lesen:Importieren Sie Daten in R mit einer unbekannten Anzahl von Spalten?
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
Um dieses Problem zu überwinden, ich bin mit dem Argument fill = TRUE in read.table, so:
data<-read.table("test",sep="\t",fill=TRUE)
Leider die maximale Zeilenlänge zu beurteilen, liest read.table nur die ersten fünf Zeilen der Datei und erzeugt ein Objekt wie folgt aussehen:
data
V1 V2 V3 V4 V5
1 1 NA NA NA NA
2 1 2 NA NA NA
3 1 2 3 NA NA
4 1 2 3 4 NA
5 1 2 3 4 5
6 1 2 3 4 5
7 6 NA NA NA NA
8 1 2 3 4 5
9 6 7 NA NA NA
10 1 2 3 4 5
11 6 7 8 NA NA
gibt es aw Sie können read.table zwingen, über die gesamte Datei zu blättern, um die maximale Zeilenlänge zu ermitteln. Ich weiß, eine mögliche Lösung die Spaltennummer zur Verfügung zu stellen wäre, wie:
data<-read.table("test",sep="\t",fill=TRUE,col.names=c(1:8))
Aber da ich eine Menge von Dateien habe, wollte ich diese Jeden Vorschlag innerhalb R. automatisch beurteilen? :-)
EDIT: die Original-Datei enthält keine progressiven Zahlen, so ist dies keine Lösung:
data1<-read.table("test",sep="\t",fill=TRUE)
data2<-read.table("test",sep="\t",fill=TRUE,col.names=c(1:max(data1))
können Sie einen Header in der Datei gesetzt (dh haben die Dateien ein konsistentes Format? – Shane
Leider nicht, die Dateien werden extern generiert und jede Zeile kann eine zufällige Anzahl von Einträgen haben. –