读取R中不同目录下的多个文件

时间:2012-05-08 15:27:10

标签: r readfile

我有多个文件在不同的目录下有相似的名字。该目录的命名方式类似于:dir1 - > DIR10。

在每个目录下都有名为f1-f10的文件,我想读取每个目录中的第一个文件。

我可以使用read.csv吗?因为我需要使用变量来表示目录和文件名。

2 个答案:

答案 0 :(得分:10)

构建文件名的替代方法是sprintf

file.paths <- sprintf ('dir%i/f1.csv', 1:10)

expand.grid

grid <- expand.grid (1:4, 1:3)
file.paths <- sprintf ('dir%i/f%i.csv', grid [[1]], grid [[2]])

或者,使用Sys.glob

file.paths <- Sys.glob ('dir*/f1.csv')

后者还允许读取那些目录中的所有f * .csv文件*:

file.paths <- Sys.glob ('dir*/*f*.csv')

答案 1 :(得分:1)

如果David对他的问题是正确的,并假设您的工作目录是包含所有子目录的目录......

file.paths <- paste0('dir', 1:10, '/', 'f1.csv')
lapply(file.paths, read.csv)

应该很容易将此示例扩展到您的具体情况。如果您在10个文件夹中分别有10个文件,那么您可能想要探索的唯一其他功能是expand.grid

combos <- expand.grid(1:10, 1:10)
file.paths <- paste0('dir', combos[,1], '/f', combos[,2], '.csv')