異なるディレクトリに同じような名前のファイルが複数あります。ディレクトリの名前も同様です。たとえば、dir1->dir10のようになります。
各ディレクトリの下にf1〜f10という名前のファイルがあり、各ディレクトリの最初のファイルを読みたいと思います。
たとえば、read.csvを使用できますか?ディレクトリ名とファイル名の両方を表すために変数を使用する必要があるためです。
ファイル名を作成するための代替手段は次のとおりです。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')
後者では、これらのdir*内のすべてのf*.csvファイルを読み取ることもできます。
file.paths <- Sys.glob ('dir*/*f*.csv')
Davidが彼の質問に正しかった場合、作業ディレクトリがすべてのサブディレクトリを含むディレクトリであると仮定すると...
file.paths <- paste0('dir', 1:10, '/', 'f1.csv')
lapply(file.paths, read.csv)
この例を特定の状況に拡張するのに十分簡単なはずです。あなたが探求したいと思うかもしれない他の唯一の機能はexpand.grid
、10個のフォルダのそれぞれに10個のファイルがあるかどうかです:
combos <- expand.grid(1:10, 1:10)
file.paths <- paste0('dir', combos[,1], '/f', combos[,2], '.csv')