【问题标题】:How can I read in excel files by looking for a string pattern?如何通过查找字符串模式来读取 excel 文件?
【发布时间】:2020-09-21 18:20:32
【问题描述】:

我需要读入一堆分散在不同目录中的文件。

问题是,这些文件都有稍微不同的命名变化,例如:

7-2018 侦察.xlsx 侦察 06-2019.xlsx 5-31-2017 RECON LINKED.xlsx

我想读取 excel 文件以在文件名中查找关键字“RECON”。

我尝试在 read_excel 函数中使用 contains 函数 - 没用。

有什么想法吗?

谢谢!

【问题讨论】:

标签: r


【解决方案1】:

您可以通过以下方式识别相关文件的列表并获取它们的路径:

> normalizePath(list.files(pattern="Rmd", ignore.case=TRUE, recursive=TRUE))
[1] "/Users/david/Dropbox (DaveArmstrong)/9590/Lecture1/Lecture1.Rmd"    
[2] "/Users/david/Dropbox (DaveArmstrong)/9590/Lecture2/lec2_inclass.Rmd"
[3] "/Users/david/Dropbox (DaveArmstrong)/9590/Lecture2/lecture2.rmd"    
[4] "/Users/david/Dropbox (DaveArmstrong)/9590/Lecture3/lecture3.rmd"   

您可能想要一个像“.*RECON.*\\.xlsx$”这样的模式,它会找到<anything>RECON<anything>.xlsx<end of string>。您可以将结果保存为文件名向量,然后循环读取它们。

【讨论】:

  • 你的正则表达式不太正确。我认为您正在寻找“.*RECON.*\.xlsx$”。但即使这样,第一个 .* 也不需要,“RECON.*\.xlsx$”就足够了。或者,如果目录中的所有文件都是 xlsx,则您的模式可以只是“侦察”。
  • @noah 谢谢,我需要在表达式周围添加反引号。其余的你是对的。
猜你喜欢
  • 2021-07-27
  • 2019-05-16
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 2022-06-27
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
相关资源
最近更新 更多