我有数千个需要清除的excel文件。我需要阅读具有特定名称的工作表并清理它们。选项卡的大多数名称都使用类似“ EQuote”的名称,但是有些选项卡在“ E-Quote”或“ EQuote”的名称中带有一些附加词。但是,所有选项卡的名称都包含“ Quote”。当选项卡名称包含“ Quote”时,您能帮我将excel选项卡读入数据框吗?
我的代码是这样的,但这只能读取以“ EQuote”命名的Excel工作表。
whole_data <- lapply(file.list, function(file){
df= read_excel(file, sheet = 'EQuote')
....my clean steps....
})
如何更改代码以读取工作表,其中的名称包含字符串'Quote'。
答案 0 :(得分:0)
您可以使用readxl::excel_sheets
列出excel文件中的所有工作表,然后仅过滤包含grepl()
的包含“ Quote”的名称(如果工作表中包含多种情况,请设置ignore.case = TRUE
名称)。
sheets <- readxl::excel_sheets(file)
quote_sheets <- sheets[grepl("Quote", sheets, ignore.case = FALSE)]
答案 1 :(得分:0)
所以也许您可以尝试一下。首先将所有工作表名称保存在一个变量中:
library(openxlsx)
Names <- getSheetNames('file_path')
之后,您只需过滤名称就只包含所需的字符串
Names_good <- Names[grepl('Quote', Names)]
然后执行for循环
library(readxl)
for(i in 1:length(Names_good)){
df <- read_excel("file_path", sheet = paste0(Names_good[i])
....your clean steps and output....
}