Проверьте наличие файла с подстановочным знаком в R - PullRequest
0 голосов
/ 14 октября 2019

Я хочу проверить, существует ли папка на основе строковых значений в переменной.

Мне нужно использовать функцию подстановки, хотя в качестве папок, которые я хочу проверить, могут отличаться имена, но всегда будет содержаться содержимоестроковая переменная

Проблема: Если я применю функцию file.exists к функции Sys.glob, она всегда вернет TRUE, начиная с Sys.glob (, который я использую для подстановочного знакарасширение ) будет воздействовать магией только на те файлы, которые действительно существуют, и пропускать те, которые не существуют.

Представьте, что в моей папке path_root

path_root/hihi_test1_hoho

path_root/haha_test3_hehe

variable <- c("*test1*", "*test2*", "*test3*")

file.exists(
Sys.glob(
file.path(path_root, variable)))

есть две папки

В этом примере вывод будет

[1] ИСТИНА ИСТИНА

Я бы хотел, чтобы результат был

[1] TRUE FALSE TRUE

, поскольку папка test2 отсутствует.

Поэтому я бы просто хотел использовать расширение с подстановочными знаками в функции file.existsно я не могу заставить его работать.

1 Ответ

0 голосов
/ 14 октября 2019

Перечитайте вопрос и теперь лучше поймите, что требуется, попробуйте:

path_root <- "C:/Users/User/Documents"
variable <- c("somepattern.*", ".*R")
#Search for pattern in directories:
grepl(paste(file.path(path_root, variable), collapse = "|"), list.dirs(path_root, full.names = TRUE, recursive = FALSE))
...