A: как использовать grepl с несколькими моделями
Вы можете использовать следующий базовый синтаксис с функцией grepl() в R для фильтрации строк во фрейме данных, содержащих один из нескольких строковых шаблонов в определенном столбце:
library (dplyr) new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), my_column))
Этот конкретный синтаксис фильтрует фрейм данных для строк, в которых значение столбца с именем my_column содержит один из шаблонов строк в векторе с именем my_patterns .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: как использовать grepl() с несколькими моделями в R
Предположим, у нас есть следующий кадр данных в R, содержащий информацию о различных баскетбольных командах:
#create data frame df <- data. frame (team=c('Mavs', 'Hawks', 'Nets', 'Heat', 'Cavs'), points=c(104, 115, 124, 120, 112), status=c('Bad', 'Good', 'Excellent', 'Great', 'Bad')) #view data frame df team points status 1 Mavs 104 Bad 2 Hawks 115 Good 3 Nets 124 Excellent 4 Heat 120 Great 5 Cavs 112 Bad
Предположим, мы хотим отфильтровать фрейм данных, чтобы он содержал только строки, в которых строка столбца состояния содержит один из следующих шаблонов строк:
- ‘ХОРОШИЙ’
- ‘Серый’
- ‘Бывший’
Для этого мы можем использовать следующий синтаксис с функцией grepl() :
library (dplyr) #define patterns to search for my_patterns <- c(' Good ', ' Gre ', ' Ex ') #filter for rows where status column contains one of several strings new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), status)) #view results new_df team points status 1 Hawks 115 Good 2 Nets 124 Excellent 3 Heat 120 Great
Обратите внимание, что фрейм данных был отфильтрован и содержит только те строки, в которых строка в столбце состояния содержит один из трех указанных нами шаблонов.
Обратите внимание, что использование функции Paste() с аргументом Collapses=’|’ на самом деле мы искали строку «Good|Gre|Ex» в столбце статуса .
Поскольку | Символ в R означает «ИЛИ», в столбце статуса нам удалось найти строки, содержащие «Хорошо», «Гр» или «Отлично».
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как изменить переменную, если столбец содержит строку, используя dplyr
Как удалить первый символ из строки с помощью dplyr
Как заменить строку в столбце с помощью dplyr