3
votes

I am trying to get started with writing my first R code. I have searched for this answer but I am not quite sure what I've found is what I'm looking for exactly. I know how to get R to read in multiple files in the same subdirectory, but I'm not quite sure how to get it to read in one specific file from multiple subdirectories.

For instance, I have a main directory containing a series of trajectory replicates, each replicate is in it's own subdirectory. The break down is as follows;

"Main Dir" -> "SubDir1" -> "ReplicateDirs 1-6"

From each "ReplicateDir" I want R to pull the "RMSD.dat" table (file) to read from. All of the RMSD.dat files have identical names, they are just in different directories and contain different data of course.

I could move all the files to one folder but this doesn't seem like the most efficient way to attack this problem.

If anyone could enlighten me, I'd appreciate it.

Thanks

1
list.files("Main Dir", recursive=T) ?Cath
plus pattern = "^RMSD\\.dat$"BenBarnes

1 Answers

8
votes

This should work, of course change My Dir to your directory

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

If you want to read the files into the data set, you could use the function below:

readDatFile <- function(f) {
  dat.fl <- read.csv(f) # You may have to change read.csv to match your data type
}

And apply to the list of files:

data.files <- sapply(dat.files, readDatFile)