【发布时间】:2019-09-21 13:46:04
【问题描述】:
我有多个文件名,例如 C1.xlsx; C2.xlsx; C3.xlsx; C4.xlsx 等,其中每个文件都有多个工作表,例如 C_1; C_2; C_3 等等......即所有文件中的工作表名称相同,并且所有文件中的工作表数量相等。 现在,我需要合并所有文件中具有相似工作表名称的所有工作表。另外,每个工作表中的列名都是一样的。
我正在使用以下代码读取文件夹中的所有 excel 文件
library(readxl)
files <- list.files(path = "~/Dropbox/Data/multiple_files", pattern =
"*.xlsx", full.names = T)
tbl <- sapply(files, read_excel, simplify=FALSE) %>%
bind_rows(.id = "id")
我拥有的excel文件如下所示:
C1.xlsx (worksheet:C_1) (worksheet:C_2) (worksheet:C_3)
A B C D E A B C D E A B C D E
1 4 6 8 C_1 2 4 6 1 C_2 1 4 6 8 C_3
3 56 7 8 C_1 2 3 6 8 C_2 2 3 5 6 C_3
2 4 6 1 C_1 7 8 3 4 C_2 3 4 6 7 C_3
C2.xlsx (worksheet:C_1) (worksheet:C_2) (worksheet:C_3)
A B C D E A B C D E A B C D E
3 7 1 3 C_1 1 4 7 1 C_2 1 9 6 1 C_3
1 6 9 2 C_1 2 3 6 8 C_2 2 3 5 6 C_3
2 4 6 1 C_1 7 1 3 4 C_2 3 4 2 7 C_3
C3.xlsx (worksheet:C_1) (worksheet:C_2) (worksheet:C_3)
A B C D E A B C D E A B C D E
9 4 6 8 C_1 1 4 6 1 C_2 1 4 1 1 C_3
3 5 7 1 C_1 1 3 6 4 C_2 2 1 5 1 C_3
2 7 6 1 C_1 7 7 3 4 C_2 3 4 6 7 C_3
excel文件中的组合工作表应如下所示:
Combined.xlsx (worksheet:C_1) (worksheet:C_2) (worksheet:C_3)
A B C D E A B C D E A B C D E
1 4 6 8 C_1 2 4 6 1 C_2 1 4 6 8 C_3
3 56 7 8 C_1 2 3 6 8 C_2 2 3 5 6 C_3
2 4 6 1 C_1 7 8 3 4 C_2 3 4 6 7 C_3
3 7 1 3 C_1 1 4 7 1 C_2 1 9 6 1 C_3
1 6 9 2 C_1 2 3 6 8 C_2 2 3 5 6 C_3
2 4 6 1 C_1 7 1 3 4 C_2 3 4 2 7 C_3
9 4 6 8 C_1 1 4 6 1 C_2 1 4 1 1 C_3
3 5 7 1 C_1 1 3 6 4 C_2 2 1 5 1 C_3
2 7 6 1 C_1 7 7 3 4 C_2 3 4 6 7 C_3
我正在寻找一个代码来首先读取文件夹中的所有 excel 文件,然后合并工作表
提前致谢
【问题讨论】:
-
您将需要一个能够编写 xlsx 文件的包。我过去成功使用过
openxlsx包。一旦您可以读取文件并写入输出,您的问题就应该得到解决。
标签: r