У меня есть RasterStack с 191 слоем со следующим соглашением об именах:
[1] "LC08_L1TP_037035_20130501_20170310_01_T1_sr_ndvi" "LC08_L1TP_037035_20130602_20170310_01_T1_sr_ndvi"
...
У меня также есть отдельный data.frame (df_filtered), содержащий список эти растры после применения набора условий фильтрации дали 161 растр. Однако имена файлов, перечисленные в df_filtered, имеют несколько иное соглашение об именах, где последняя часть («_sr_ndvi») имени файла была удалена:
ID
1 LC08_L1TP_037035_20130501_20170310_01_T1
2 LC08_L1TP_037035_20130602_20170310_01_T1
Я хотел бы подмножество исходного стека 191 растр, чтобы включить только те, которые перечислены в df_filtered. Мой подход заключался в использовании grep для частичного совпадения. Вот код, который я пробовал:
rasters_filtered <- raster::subset(my_stack, grep(df_filtered$ID, names(my_stack), value = T))
Это работает для первого растра в стеке, но не для остальных. Вот ошибка: «аргумент 'шаблон' имеет длину> 1, и будет использоваться только первый элемент»
Есть ли способ заставить его перебирать все имена в списке?