如何将具有特定字符串的excel表读入R

Posted

技术标签:

【中文标题】如何将具有特定字符串的excel表读入R【英文标题】:How to read excel sheet with specific string into R 【发布时间】:2018-10-23 14:50:32 【问题描述】:

我有数千个 Excel 文件需要清理。我需要阅读具有特定名称的工作表并清理它们。大多数选项卡的名称都以“EQuote”之类的名称命名,但也有一些选项卡以“E-Quote”或“EQuote”的名称命名,并带有一些附加词。但是,所有选项卡的名称都包含“引用”。当标签的名称包含'报价'时,您可以帮助我在dataframe中读取excel选项卡。

我的代码是这样的,但这只能读取'EQuote'中命名的excel表。

whole_data <- lapply(file.list, function(file)
    df= read_excel(file, sheet = 'EQuote')

    ....my clean steps....
)

如何更改代码以读取表格,其中名称包含字符串'Quote'。

【问题讨论】:

【参考方案1】:

您可以使用readxl::excel_sheets 列出Excel 文件中的所有工作表,然后使用grepl() 过滤到仅包含“引用”的名称(如果工作表名称中混合大小写,则设置ignore.case = TRUE)。

sheets <- readxl::excel_sheets(file)
quote_sheets <- sheets[grepl("Quote", sheets, ignore.case = FALSE)]

【讨论】:

【参考方案2】:

所以也许你可以试试这个。首先在一个变量中获取所有工作表名称:

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


【讨论】:

以上是关于如何将具有特定字符串的excel表读入R的主要内容,如果未能解决你的问题,请参考以下文章

熊猫:将特定的 Excel 单元格值读入变量

只将包含某个单词的 Excel sheet_names 读入 pandas 数据框

将带有单元格中公式的excel文件读入R

如何将文件中的特定数据读入数组字符串

将字符串转换为 Excel 日期和时间,具有特定的字符串格式

R中根据特定字符将一列拆分为几列的方法