Ich habe gelesen, wie man mehrere xlsx liest und kombiniert. Dateien in einen R-Datenrahmen und sind auf einige sehr gute Vorschläge wie How to read multiple xlsx file in R using loop with specific rows and columns gestoßen, aber passt nicht zu meinem Datensatz bisher.Mehrere xlsx-Dateien mit mehreren Blättern in einem R-Datenrahmen lesen
Ich möchte, dass R mehrere xlsx-Dateien mit mehreren Blättern lesen. Alle Blätter und Dateien haben die gleichen Spalten, aber nicht die gleiche Länge und NAs sollten ausgeschlossen werden. Ich möchte die ersten drei Zeilen überspringen und nehmen nur in den Spalten 1: 6, 08.10, 12.17, 19.
Bisher habe ich versucht:
file.list <- list.files(recursive=T,pattern='*.xlsx')
dat = lapply(file.list, function(i){
x = read.xlsx(i, sheetIndex=1, sheetName=NULL, startRow=4,
endRow=NULL, as.data.frame=TRUE, header=F)
# Column select
x = x[, c(1:6,8:10,12:17,19)]
# Create column with file name
x$file = i
# Return data
x
})
dat = do.call("rbind.data.frame", dat)
Aber dies geschieht nur alle ersten Blatt jeder Datei
Weiß jemand, wie man alle Blätter und Akten in einem R Datenrahmen zusammenbringt?
Welche Pakete würden Sie auch für große Datenmengen empfehlen? Bisher habe ich readxl und XLConnect ausprobiert.
Danke eine Million!
Sie haben nur das erste Blatt in Ihrer Funktion explizit gefragt: x = read.xlsx (i, * sheetIndex = 1 *, ....) – mkt
Auch Wenn Sie die Geschwindigkeit für große Datasets optimieren möchten, sollten Sie das Paket data.table nachschlagen. Mit der fread-Funktion können Sie unter anderem nur die benötigten Spalten einlesen, anstatt alle Spalten zu lesen und dann zu unterteilen. Aber ich bin mir nicht sicher, dass es mit .xlsx-Dateien funktioniert. – mkt
Ihr Gerät hat Dateien überschliffen, Sie müssen eine zweite Schleife über die Blätter legen, um zu bekommen, was Sie wollen. – Choubi