Список файлов с несколькими условиями
У меня есть набор из 16 папок, каждая из которых имеет подпапки. Я хочу, чтобы код входил в каждую из этих 16 папок, проверял все подпути и импортировал только те файлы, которые удовлетворяют следующим условиям: либо они содержат "B02.jp2", либо "B03.jp2", либо "B04.jp2". ИЛИ "B08.jp2"
Вот скриншот файлов, которые я хочу выбрать
Вот код, который я использую до сих пор:
Этот работает отлично, но он использует только одно условие (B08.jp2$)
path <- "my/path/"
path <- list.files(path, recursive = TRUE, full.names = FALSE, pattern = "B08.jp2$")
Я пытался объединить несколько шаблонов, но безуспешно: вот мои попытки
На основе: аргумента шаблона list.files в R, расширенного использования регулярного выражения
path <- "my/path/"
path <- list.files(path, recursive = TRUE, full.names = FALSE, pattern = glob2rx("B08.jp2$*B03.jp2$"))
path<-character(0)
Основано на: R списках файлов с несколькими условиями
path <- "my/path/"
path <- list.files(path, recursive = TRUE, full.names = FALSE, pattern = "B08.jp2$ | B03.jp2$")
path<-character(0)
-- РЕДАКТИРОВАТЬ --
Я немного изменил свои данные и хотел бы импортировать их другим способом. Мои файлы теперь называются:
B02_10m.jp2
B03_10m.jp2
B04_10m.jp2
B08_10m.jp2
B05_20m.jp2
B06_20m.jp2
B07_20m.jp2
B8A_20m.jp2
B11_20m.jp2
B12_20m.jp2
Они расположены в разных подпапках. Вот так я использую recursive=TRUE
,
Я пытался со следующими вариантами объединить условия, но это не работает.
S2 <- "my/path"
S2 <- list.files(S2, recursive = TRUE, full.names = TRUE, pattern = "B0[2348]_10m.jp2$ | B(0[567]_20m)|(1[12]_20m)|(8A_20m).jp2$")
S2 <- "my/path"
S2 <- list.files(S2, recursive = TRUE, full.names = TRUE, pattern = "B0[2348]_10m | B(0[567]_20m)|(1[12]_20m)|(8A_20m).jp2$")
1 ответ
Попробуй это:
list.files(path, recursive = TRUE, full.names = FALSE,
pattern = "B0[2348].jp2$")
Шаблон принимает регулярное выражение.