ROI, , ntrial, .
library(dplyr)
library(stringr)
df %>% group_by(subject, ntrial) %>%
filter(grepl("_aCORR_CORR", paste(str_extract(ROI, "_a?CORR"), collapse="")))
subject ROI ntrial
1 sbj05 ff 78
2 sbj05 as 78
3 sbj05 fgfsd 78
4 sbj05 sgf 78
5 sbj05 jh 78
6 sbj05 sgsgsfg 78
7 sbj05 fgsfg 78
8 sbj05 sgf_aCORRECT1 78
9 sbj05 dfs_CORRECT1 78
10 sbj05 ffg 78
11 sbj05 sdfdsf 78
12 sbj05 sl 78
13 sbj05 wgrt 78
14 sbj05 qswefrd 201
15 sbj05 ssdg 201
16 sbj05 sdgfdsg 201
17 sbj05 sgsgd 201
18 sbj05 sgsdg 201
19 sbj05 dd_aCORRECT1 201
20 sbj05 dd_aCORRECT1 201
21 sbj05 ffds_CORRECT1 201
22 sbj05 ffds_CORRECT1 201
23 sbj05 ffds_CORRECT1 201
24 sbj05 hy 201
25 sbj05 gfg 201
26 sbj05 nbc 201
a data.table , R gsub str_extract:
library(data.table)
setDT(df)[, .SD[grepl("_aCORR_CORR", paste(gsub(".*(_a?CORR).*","\\1", ROI),collapse=""))], by=.(subject,ntrial)]