将多个excel文件合并到R中,只保留第二张,保留文件名作为“数据源”

我试图将多个excel文件合并到R中的一个data.frame中 – 所有文件都从一个公共文件夹中提取,只提取第二个sheet,它总是有一个特定的名称('Value Assessment')。

另外还可以保留每个文件名在列中,这样合并数据的来源就被维护了。

我已经能够加载文件并合并成一个data.frame,但不知道如何保留文件名作为“源名称”。

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

使用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") 

(注:可能是一个错字,你失踪sheet = 2 )。

试试这个:合并所有Excel文件中的所有数据:

 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)) }