如何让R从一个大目录下的多个子目录中读取文件?

如何让R从一个大目录下的多个子目录中读取文件?,r,R,我正试图开始写我的第一个R代码。我一直在寻找这个答案,但我不太确定我找到的正是我想要的。我知道如何让R读入同一子目录中的多个文件,但我不太确定如何让R读入多个子目录中的一个特定文件 例如,我有一个包含一系列轨迹复制的主目录,每个复制都在它自己的子目录中。细分如下: “主目录”->“子目录”->“复制目录1-6” 从每个“ReplicateDir”中,我希望R从中提取要读取的“RMSD.dat”表(文件)。所有RMSD.dat文件都有相同的名称,它们只是在不同的目录中,当然包含不同的数据 我可以将

我正试图开始写我的第一个R代码。我一直在寻找这个答案,但我不太确定我找到的正是我想要的。我知道如何让R读入同一子目录中的多个文件,但我不太确定如何让R读入多个子目录中的一个特定文件

例如,我有一个包含一系列轨迹复制的主目录,每个复制都在它自己的子目录中。细分如下:

“主目录”->“子目录”->“复制目录1-6”

从每个“ReplicateDir”中,我希望R从中提取要读取的“RMSD.dat”表(文件)。所有RMSD.dat文件都有相同的名称,它们只是在不同的目录中,当然包含不同的数据

我可以将所有文件移到一个文件夹中,但这似乎不是解决此问题的最有效方法

如果有人能启发我,我将不胜感激


谢谢

这应该行得通,当然将
我的目录
更改到您的目录

dat.files  <- list.files(path="Main Dir",
                                recursive=T,
                                pattern="RMSD.dat"
                                ,full.names=T)

dat.files
list.files(“Main Dir”,recursive=T)
?加上
pattern=“^RMSD\\.dat$”
这非常有效!非常感谢你。但是,由于这会生成一个很长的文件列表,您认为这会允许我“进入”列表中的每个文件,并从每个文件的子集1列中进行块平均吗?@D.a.Ragland我很高兴看到它对您有效。原则上是的,有不同的方法从列表中对元素进行子集设置(请看一看),或者您可能更喜欢在循环中跳过列表,并将子集分别应用于每个元素,或者将元素合并到一个数据帧中。这在很大程度上取决于数据的性质、您希望如何使用数据等。有大量的解决方案,可以解决许多与列表相关的问题,值得探索,而且您可以随时询问。
readDatFile <- function(f) {
  dat.fl <- read.csv(f) # You may have to change read.csv to match your data type
}
data.files <- sapply(dat.files, readDatFile)