我正在尝试使用 read.xlsx2 函数读取文件夹中的多个 excel 文件。我只需要阅读标题为“退货”或“价格”的特定表格。
有没有一种方法可以在函数中给出“或”参数,如果文件不包含任何表格,也可以跳过文件?
Ps:每个文件都会有一个“退货”或“价格”表,或者两者都没有,但不能同时有,所以不会有冲突。
谢谢
您可以读取文件的所有工作表名称并使用intersect
选择工作表中存在的一个'Returns'
或'Prices'
任何一个,并使用该工作表读取 excel 文件。
使用readxl
你可以这样做:
library(readxl)
all_files <- list.files(pattern = '\\.xlsx$')
result <- lapply(all_files, function(x) {
all_sheets <- excel_sheets(x)
correct_sheet <- intersect(all_sheets, c('Returns', 'Prices'))
if(length(correct_sheet)) read_xlsx(x, correct_sheet)
})
result
将有一个数据框列表。如果要将数据组合到一个数据框中并且它们具有相同的列名,则可以使用do.call(rbind, result)