【问题标题】:R: Importing CSV data based on multiple AND and OR conditions of the file namesR:根据文件名的多个 AND 和 OR 条件导入 CSV 数据
【发布时间】:2021-02-27 09:24:50
【问题描述】:

我在基于 R 中文件名的多个 AND 和 OR 条件导入 CSV 数据方面需要帮助

我有一个包含 CSV 文件的文件夹(总共 820 个),每个文件都包含一个固定且相同格式的表格,表格中填充了不同的值。

CSV 文件可以根据三个变量分为多个组:物种、RCP、MSY。请参阅下面的 CSV 文件名 (file.dir) 表以及已识别的变量

我有 82 个物种(代码)、2 个 RCP 和 5 个 MSY,总共有 820 个 CSV 文件/表格。我目前正在使用此代码导入我的 csv,但我的技能仅限于 "pattern=":

的一个正则表达式
all_paths <- list.files(path = "C:/#File.dir", pattern = "rcp85", full.names = TRUE)

我希望导入 csv 基于:

  1. 具有物种(代码)列表中的名称之一的文件名,该名称既不连续也不按顺序排列。即文件名中的物种代码:60002,60005,600042,600058,600062,600089,600092,600100(我要选择仅粗体
  2. 导入包含 msy1 或 msy3 的 CSV 文件名。这意味着我希望同时导入 msy1 和 msy3
  3. 在 R 中导入文件,同时满足 (1) 和 (2) 中的条件。

我可以知道如何改进/表达附加的脚本以实现我的目标吗?还是我必须使用额外的软件包才能这样做?

我希望我的目标不会让任何阅读它的人感到困惑。如果需要更多信息,请告诉我。非常感谢您的宝贵时间!

欢呼, 嘘

【问题讨论】:

  • 这行得通吗? list.files(path = "C:/#File.dir", pattern = "(60002|600042|600058|600092)-Biomass-\\w+-msy(1|3)\\.csv", full.names = TRUE)
  • 这很好用!!谢谢!

标签: r regex import lapply


【解决方案1】:

这是一个想法,它不会是您真正想要的答案,但您可以使用物种和 MSY 制作文件名列表,如下所示:

list.files <- list()
for(species in species.list) {
  for(rcp in c("rcp45","rcp85")){
    for(msy in c("msy1","msy3")){
      list.files <- append(list.files, paste0(species,"-Biomass-",rcp,"-",msy,".csv"))
    }
  }
}

【讨论】:

  • 这很好用!我可以根据我制作的文件列表导入数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 2018-11-22
  • 2021-10-14
  • 1970-01-01
  • 2023-01-15
相关资源
最近更新 更多