2016-11-22 33 views
-1

Ich mag die Dateien zeilenweise verschmelzen, aber einige der Dateien haben unterschiedliche Anzahl von Zeilen (0 als auch) .Ich die folgende Störung erhalten in R:Erstellen von Datenrahmen in R

fileList <- list.files(, pattern=".txt") 
new_df=do.call(rbind, lapply(fileList, function(X) { 
data.frame(id = basename(X), tryCatch(read.table(X), error=function(e) NULL))} 
)) 

Fehler in data.frame (ID = Basisnamen (X), TryCatch (read.table (X), error = function (e) NULL)) Argumente implizieren unterschiedliche Anzahl der Zeilen: 1, 0

Irgendein Vorschlag, wie man die Dateien noch zusammenführen und einen einzelnen Datenrahmen erstellen kann, obwohl einige der Dateien keine Zeilen haben (h Kann ich sie einfach ignorieren)?

+1

Nun, nistet Ihr 'read.table' Anruf in 'data.frame' ist ein Rezept für Ärger. – joran

Antwort

0

Verwenden data.table Legen Sie die Dateien mit fread Bind allen data.tables mit rbindlist werde ich Code hinzufügen, wenn Sie ein minimales reproduzierbares Beispiel hinzufügen

library(data.table) 
files = list.files(dir, pattern='.txt') 
dtList = lapply(files, FUN=fread) 
dt = rbindlist(dtList, use.names=TRUE) 
+0

Ich habe diesen Fehler: Fehler in rbindlist (dtList, use.names = TRUE): Artikel 44 hat 10 Spalten, inkonsistent mit Element 1, die 11 Spalten hat. Wenn Sie stattdessen fehlende Spalten füllen müssen, verwenden Sie das Argument 'fill' auf TRUE. So habe ich das Argument "fill = TRUE" hinzugefügt und es hat funktioniert. – user45292

Verwandte Themen