Во-первых, обратите внимание, что вы не используете шаблоны регулярных выражений. Ваш первый пример должен быть:
list.files(pattern='data-.*\\.csv', recursive=TRUE)
. Тогда кажется, что соответствие шаблону внутри list.files
применяется к базовым именам файла (то есть, не включая путь к каталогу), поэтому вы можете разбить задачу на:
basename.matches <- list.files(pattern='data-.*\\.csv', recursive=TRUE,
full.names = TRUE)
basename.matches
# [1] "./results/A/data-1.csv" "./results/A/data-2.csv" "./results/B/data-1.csv"
# [4] "./results/B/data-2.csv"
full.matches <- grep(pattern='^\\./results/A/', basename.matches, value = TRUE)
full.matches
# [1] "./results/A/data-1.csv" "./results/A/data-2.csv"