【发布时间】:2021-11-22 19:22:52
【问题描述】:
我正在尝试从多个 Excel 文件中附加多个工作表。例如,每个 Excel 文件有 10 个工作表(格式不同),但一个 Excel 文件的 10 个工作表与另一个 Excel 文件的关联的 10 个工作表具有相同的名称和格式。本质上,每个 Excel 文件包含不同国家的不同类型信息,但每个国家收集的信息类型相同(人口、污染指数、GDP 等)。而且我有很多国家,所以我正在考虑使用循环。
我使用“report_1h”作为主 Excel 文件,并将其他 Excel 文件的工作表附加到主文件的工作表中。
library(rio)
x1_data <- import_list("report_1h.xlsx")
report_list <- list.files(path = 'E:/Report_folder', pattern = '*.xlsx')
sheet_ <- data.frame()
for (file in report_list){
book <- import_list(file)
for (i in 1:31){
sheet_[i] <- rbind(x1_data[[i]][,],book[[i]][,])
x1_data[[i]][,] <- sheet_[i]
}
}
该循环旨在将每个 Excel 文件中的工作表附加到主文件“report_1h”的工作表中。但它给出了错误:
Error in `[<-.data.frame`(`*tmp*`, i, value = c("Data Source(s):", "Data Source(s):", :
replacement has 2 rows, data has 0
谁能告诉我为什么?
【问题讨论】:
-
对不起,每个 Excel 文件有 31 张,不是 10 张。
-
所以如果你有 10 个 excel 文件,每个文件有 31 张。您是否要将所有 sheet1 中的 10 个文件合并到一个数据框中,然后将 sheet2 中的 10 个文件合并到另一个数据框中,同样您最终将拥有 31 个数据框?
-
是的,我想将所有 10 个 excel 文件的所有 sheet1 和所有 10 个 excel 文件的所有 sheet2 组合在一起。所以最后我有 31 个数据框!