【发布时间】:2020-01-23 19:28:24
【问题描述】:
我已经使用了很多帖子来让我走到这一步(例如这里 R list files with multiple conditions 和这里 How can I read multiple files from multiple directories into R for processing? 但无法完成我在 R 中需要的内容。
我有许多分布在多个子目录中的 .csv 文件,我想读取这些文件,然后将它们作为单独的对象保存到相应的基本名称中。最终结果是将每个文件 rbind 在一起。这是示例目录结构和我尝试过的一些内容:
./DATA/Cat_Animal/animal1.csv
./DATA/Dog_Animal/animal2.csv
./DATA/Dog_Animal/animal3.csv
./DATA/Dog_Animal/animal3.1.csv
#read in all csv files
files <- list.files(path="./DATA", pattern="*.csv", full.names=TRUE, recursive=TRUE)
但这会导致所有子目录中的所有文件。我想匹配特定子目录中与模式 (X_Animal) 匹配的特定文件 (animalsX.csv),例如:
files <- dir(path=paste0("./DATA/", pattern="*+_Animal"), recursive=TRUE, full.names=TRUE, pattern="animal+.*csv")
获得文件列表后,我想读取每个文件并将每个文件保存到相应文件的基本名称中。所以名为 animal1.csv 的文件 将被保存到animal1。我想我需要在循环中的某处使用函数 basename() 但不知道如何。
非常感谢您的帮助 我花了很多时间尝试各种选项,但进展甚微。
【问题讨论】:
-
循环在哪里?您能否更准确地谈谈您的示例 - 什么将保存在什么位置和什么对象下?