Несколько вещей о вашем коде.
paste
векторизовано, так что вы можете вывести его из цикла.
paste("../XYZ/*_pwg", 1:10, ".out", sep = "")
(Хотя, как вы увидите вна данный момент вам вообще не нужно использовать paste
.)
read.table
не принимает подстановочные знаки;ему нужно точное совпадение имени файла.
Вместо того, чтобы пытаться создать вектор имен файлов, вам лучше использовать dir
, чтобы найти файлы, которые существуют в вашем каталоге, отфильтрованные по подходящему именисхема.
Для фильтрации файлов вы используете регулярное выражение в аргументе шаблона.Вы можете преобразовать из подстановочных знаков в регулярные выражения, используя glob2rx
.
file_names <- dir("../XYZ", pattern = glob2rx("stat*_pwg*.out"))
data_list <- lapply(filenames, read.table, header = TRUE)
Для немного более конкретного соответствия, когда подстановочный знак соответствует только числам, чем что-либо, вам нужно использовать регулярные выражения напрямую.
file_names <- dir("../XYZ", pattern = "^stat[[:digit:]]+_pwg[[:digit:]]+\\.out$")