Мне не нужно писать функцию.
test%>%group_by(set,gr)%>%mutate(calss=ifelse(any(stringr::str_detect(gr,'a|b')&(set==vals)),'catched',NA)
+ )
# A tibble: 18 x 4
# Groups: set, gr [6]
set gr vals calss
<dbl> <fctr> <dbl> <chr>
1 1 a 10 <NA>
2 1 a 10 <NA>
3 1 a 9 <NA>
4 1 b 8 catched
5 1 b 1 catched
6 1 b 1 catched
7 2 a 10 <NA>
8 2 a 10 <NA>
9 2 a 10 <NA>
10 2 b 9 catched
11 2 b 6 catched
12 2 b 2 catched
13 3 a 10 <NA>
14 3 a 7 <NA>
15 3 a 6 <NA>
16 3 b 1 <NA>
17 3 b 1 <NA>
18 3 b 2 <NA>
Нет явного ключевого слова, чтобы сделать ваш класс абстрактным в C ++. Ваш код не должен компилироваться, потому что abstract
не является ключевым словом C ++, вы, вероятно, используете расширение компилятора, чтобы оно не перекрывало это ключевое слово.
Способ создания абстрактного класса в C ++ заключается в объявлении одной или нескольких чисто виртуальных функций, например, test
:
virtual void test() = 0;