如何将具有特定字符串的Excel表格读取到R中

时间:2018-10-23 14:50:33

标签: r excel

我有数千个需要清除的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'。

2 个答案:

答案 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....

}