У меня есть набор данных из 4000+ изображений. Для выяснения кода я переместил небольшое их подмножество в другую папку.
Файлы выглядят так:
папка
[1] "r01c01f01p01-ch3.tiff" "r01c01f01p01-ch4.tiff" "r01c01f02p01-ch1.tiff"
[4] "r01c01f03p01-ch2.tiff" "r01c01f03p01-ch3.tiff" "r01c01f04p01-ch2.tiff"
[7] "r01c01f04p01-ch4.tiff" "r01c01f05p01-ch1.tiff" "r01c01f05p01-ch2.tiff"
[10] "r01c01f06p01-ch2.tiff" "r01c01f06p01-ch4.tiff" "r01c01f09p01-ch3.tiff"
[13] "r01c01f09p01-ch4.tiff" "r01c01f10p01-ch1.tiff" "r01c01f10p01-ch4.tiff"
[16] "r01c01f11p01-ch1.tiff" "r01c01f11p01-ch2.tiff" "r01c01f11p01-ch3.tiff"
[19] "r01c01f11p01-ch4.tiff" "r01c02f10p01-ch1.tiff" "r01c02f10p01-ch2.tiff"
[22] "r01c02f10p01-ch3.tiff" "r01c02f10p01-ch4.tiff"
Я не могуудалите имя до -ch #, так как эта информация важна. Однако я хочу отфильтровать этот список изображений и вернуть только наборы (например, r01c02f10p01), которые имеют все четыре значения ch (ch1-4).
Я изначально думал, что мы могли быподойдите к вопросу следующим образом:
ch1 <- dir(path="/Desktop/cp/complete//", pattern="ch1")
ch2 <- dir(path="/Desktop/cp/complete//", pattern="ch2")
ch3 <- dir(path="/Desktop/cp/complete//", pattern="ch3")
ch4 <- dir(path="/Desktop/cp/complete//", pattern="ch4")
Применение этого списка с помощью функции file.remove
, аналогично следующему:
final2 <- dir(path="/Desktop/cp1/Images//", pattern="ch5")
file.remove(folder,final2)
Однако создание новых переменных для каждого значения chфрагменты каждого файла. Я не уверен, как их использовать, чтобы фактически отличить, имеет ли отдельное изображение все четыре значения ch для содержательной фильтрации моих изображений. Я немного растерялся, поскольку другие источники, которые я видел, имеют проблемы, которые не совсем соответствуют этой проблеме.
Ранее я мог удалить все изображения с ch5 из моего набора изображений, как это. Я думал, что это может быть полезно при попытке отфильтровать только те изображения, которые имеют ch1-ch4, но я не уверен, что делать дальше.
##Create folder variable which has all image files
folder <- list.files(getwd())
##Create final2 variable which has all image files ending in ch5
final2 <- dir(path="/Desktop/cp1/Images//", pattern="ch5")
##Remove final2 from folder
file.remove(folder,final2)
Подводя итог: я ожидаю отфильтровать файлы из случайного ассортимента без полных значений ch (то есть: возможно, только ch1 и ch2, или ch3 и ch4, или ch1, ch2, ch3 и ch4),к ассортименту, который содержит только файлы, которые имеют полный набор (четыре файла с ch1, ch2, ch3 и ch4).