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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *