Я хотел бы создать флаг во фрейме данных (или таблице данных) на основе соответствия строки некоторым терминам в R.
df = data.frame(text = c("AABA","AACA","AAAA","BAAE","CAAD","CCCC","DDDD","EEEE"))
df$flag[stri_detect_regex(df$text,"AAB|AAC|AAA|BAA|CAA")] = 'Match1'
Показывать вывод следующим образом:
text flag
1 AABA Match1
2 AACA Match1
3 AAAA Match1
4 BAAE Match1
5 CAAD Match1
6 CCCC <NA>
7 DDDD <NA>
8 EEEE <NA>
Затем я хочу проверить другой шаблон:
df$flag[stri_detect_regex(df$text,"CCCC|DDDD")] = 'Match2'
Но запускайте его, только если flag равен NA, т.е. is.na (df $ flag).Также было бы здорово узнать, как я могу включить несколько условий, например:
is.na(df$flag) & df$other_var == 1
. Причина, по которой я хочу это сделать, заключается в том, что мне нужно просмотреть много миллионов строк и выполнить регулярное выражение только для строккоторые либо не имеют флага, и / или включают другие критерии фильтрации.Спасибо за вашу помощь!