У меня есть список, из которого я хотел бы извлечь конкретные элементы для добавления в новый список, например
MyFullList = (
"
'BLUEh473vs65hRED7vfd8edgf9GLOSS.csv',
'BLUE5654vsy56hgfREDjkgr7MATTE.csv',
'BLUEhjirhgccsREDgfigjINCAN.csv',
'BLUEvfdjhkldfgsGREENdfggh5GLOSS.csv',
'BLUEtgergvsGREENsghjkhgnMATTE.csv',
'BLUEjgh4gvsGREENjkhgfdINCAN.csv',
....
'GREENhfuewhvsBLUEhfsMATTE.csv'
'GREENkdfgvsBLUEfjhINCAN.csv'
"
)
Если бы я хотел извлечь только те файлы, которые начинались с Blue, но затем содержали оба слова Greenи Мэтт, как бы я это сделал?
В настоящее время мне удалось адаптировать это от кого-то другого, но я не могу манипулировать этим дальше:
MySelection <- MyFullList[grep("^(?=[^BLUE])(?=.*MATTE)", names(MyFullList), value = T, perl=T)]
, который, кажется, просто возвращает что-либо, заканчивающеесяmatte.
Я также пробовал такие вещи, как:
MySelection <- MyFullList[grep("^BLUE|GREEN|MATTE.csv$"), names(MyFullList), value = T]
Который, на мой взгляд, имеет тот же эффект.
И мои попытки использовать звездочку:
MySelection <- MyFullList[grep("^BLUE.*GREEN.*MATTE.csv$"), names(MyFullList), value = T]
, кажется, также полностью ошибочны.
Исходя из этого, как бы я тогда использовал переменную вкоманда Grep?
например
Colours=('BLUE', 'RED', 'GREEN')
for i in 1:length(Colours) {
grep("^[[Colours[i]]].*GREEN.*MATTE.csv$"), names(MyFullList), value = T]
}