如何在r中合并多张excel工作簿?

时间:2016-11-11 14:45:34

标签: r excel dataframe merge google-sheets

假设我有一个名为report.xlsx的excel文件。这个文件有10张,方便地命名为Sheet1到Sheet10。在每张纸上,在第14行上有列标题:S / N,RegistryNr,Surname,FirstName,(空),FatherName,MotherName,sex,(空),DOB。如何将每个工作表合并为一个数据集?

我知道使用excel_sheets("report.xlsx")我可以将所有工作表名称都放到矢量中。

我知道使用df <- read_excel("report.xlsx", 1, skip = 14)我可以将一张表的所有数据都放到数据框df中。

这是我对R:/

的了解程度

如何组合上述命令将每张工作表导入同一数据框?

2 个答案:

答案 0 :(得分:6)

我经常使用purrr和readxl执行此操作:

library(purrr)
library(readxl)

file <- 'path to report.xlsx'

sheets <- excel_sheets(file)

df <- map_df(sheets, ~ read_excel(file, sheet = .x, skip = 14))

答案 1 :(得分:0)

library(data.table)
library(foreach)

xls.files = dir(pattern = "xls")

l = foreach(i = 1:length(xls.files)) %do% {

  f = read_excel(xls.files[i])
  setDT(f)

  f[, label := xls.files[i]]

}

rbindlist(l)

(foreach的优点是你可以设置一个并行的后端)。