删除多张Excel工作表的第一张纸并合并剩余的R

时间:2018-03-12 05:09:27

标签: r

我有多个excel文件,每个文件中有不同的页数。每个文件的第一页称为摘要。我想摆脱每个文件的摘要表,并在数据框中合并其他表。

我有文件名1.xlsx,2.xlsx .... 343.xlsx。每个Excel文件包含多个工作表。例如,1.xlsx包含工作表名称摘要,德里,诺伊达 2.xlsx包含工作表名称摘要,孟买,浦那,果阿,海德拉巴等。

我需要删除所有343个文件的摘要表,并将每个文件的所有其他表合并到一个数据框中

行数和列数不相同

实施例: 表x包含以下数据:

Content of sheetx

表y包含以下数据:

Content of sheetx

期望的输出:

OUTPUT

1 个答案:

答案 0 :(得分:1)

考虑每个Excel文件中除Summary之外的所有选项卡都具有相同的列名称 -

library(readxl)   

f_in <- list.files("directory_path_of_your_excel_files/")

read_all_tabs <- function(f_name) {
  tabs <- excel_sheets(f_name)
  tabs <- tabs[-1]
  tab_data <- lapply(tabs, function(x) read_excel(f_name, sheet = x))
  names(tab_data) <- tabs
  tab_data
}

df <- Reduce(rbind, lapply(f_in, function(x) Reduce(rbind, read_all_tabs(x))))


修改:由于所有工作表都有不同数量的行/列,并且您要求对这些数据进行列绑定,我认为cbind.na会很方便。

library(qpcR)
df <- Reduce(qpcR:::cbind.na, lapply(f_in, function(x) Reduce(qpcR:::cbind.na, read_all_tabs(x))))