#r
#r
Вопрос:
Я пытаюсь получить имя файла для файла «cg3-chem-djtayl18PSY101.txt » который существует в моем рабочем каталоге с помощью следующих команд.
regexName = "*chem-djtayl18*.txt"
fileName <- list.files(path = ".", pattern = regexName, ignore.case = TRUE)[1] # returning NA
Однако он возвращает имя файла как NA. Хотя он работает для 100 других файлов в том же каталоге таким же образом. Почему он ведет себя таким образом?
Комментарии:
1. ставит точки перед вашими звездочками
.*
в регулярном выражении. Это не глобусы оболочки2. да, это сработало. как только я опубликовал это здесь, я обнаружил проблему 🙂
Ответ №1:
Потому что ваше регулярное выражение не соответствует имени файла.
regexName = "*chem-djtayl18*.txt"
filename <- "cg3-chem-djtayl18PSY101.txt"
grepl(regexName, filename)
#[1] FALSE
Может быть, вам нужен шаблон.
regexName = "chem-djtayl18.*\.txt"
grepl(regexName, filename)
#[1] TRUE