假设我有一个名为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:/
的了解程度如何组合上述命令将每张工作表导入同一数据框?
答案 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的优点是你可以设置一个并行的后端)。