Вы можете сгенерировать шаблон регулярного выражения, используя ваш список имен файлов:
lst <- list("a", "b")
pat <- paste0("\\b(", paste(lst, collapse="|"), ")\\b")
files = list.files("folder/", pattern="csv")
files.keep <- grep(pat, files, value=TRUE)
files.keep
[1] "a.csv" "b.csv"
Это предполагает, что вы будете использовать имена файлов, которые имеют границы слов с обеих сторон. Это работает с приведенными выше данными, так как используемое имя с самого начала, а также расширение справа начинается с точки.