2017-03-17 3 views
2

Ich versuche, mehrere Excel-Dateien in einem einzigen data.frame in R zusammenzuführen - alle Dateien werden aus einem gemeinsamen Ordner ziehen gezogen nur das 2. Blatt, das immer einen bestimmten Namen hat ('Value Assessment').Merge mehrere Excel-Dateien in R unter nur zweiten Blatt, unter Beibehaltung der Dateiname als 'Datenquelle'

Darüber hinaus in der Lage, jeden Dateinamen in einer Spalte beizubehalten, so dass die Quelle der zusammengeführten Daten beibehalten wird.

Ich konnte die Dateien laden und in ein data.frame zusammenführen, kann aber nicht herausfinden, wie der Dateiname als 'Quellenname' beibehalten werden kann.

setwd(/.) 
file.list <- list.files(pattern='*.xlsx') 
df.list <- lapply(file.list,read_excel) 
df <- rbindlist(df.list, idcol = "id") 
+0

Wenn meine Antwort Ihr Problem gelöst, könnten Sie es bitte als angenommen markieren? –

Antwort

3

Mit setNames():

file.list <- list.files(pattern = '*.xlsx') 
file.list <- setNames(file.list, file.list) 
df.list <- lapply(file.list, read_excel, sheet = 2) 
df.list <- Map(function(df, name) { 
    df$source_name <- name 
    df 
}, df.list, names(df.list)) 
df <- rbindlist(df.list, idcol = "id") 

(Anmerkung: wahrscheinlich ein Tippfehler, Sie fehlten sheet = 2).

0

Versuchen Sie folgendes: Merge Daten aller Excel-Dateien:

library(xlsx) 
setwd("C:/Users/your_path_here/excel_files") 
data.files = list.files(pattern = "*.xlsx") 
data <- lapply(data.files, function(x) read.xlsx(x, sheetIndex = 2)) 

for (i in data.files) { 
    data <- rbind(data, read.xlsx(i, sheetIndex = 1)) 
} 
Verwandte Themen