R: Как удалить строки, содержащие определенную строку


Вы можете использовать следующий синтаксис для удаления строк, содержащих определенную строку во фрейме данных в R:

df[!grepl('string', df$column),]

В этом руководстве представлено несколько примеров использования этого синтаксиса на практике со следующим фреймом данных в R:

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'C'),
 conference=c('East', 'East', 'East', 'West', 'West', 'East'),
 points=c(11, 8, 10, 6, 6, 5))

#view data frame
df

 team conference points
1 A East 11
2 A East 8
3 A East 10
4 B West 6
5 B West 6
6 C East 5

Пример 1. Удаление строк, содержащих определенную строку

В следующем коде показано, как удалить все строки во фрейме данных, содержащие «A» в столбце команды:

df[!grepl('A', df$team),]

 team conference points
4 B West 6
5 B West 6
6 C East 5

Или мы могли бы удалить все строки во фрейме данных, которые содержат «Запад» в столбце конференции:

df[!grepl('West', df$conference),]

 team conference points
1 A East 11
2 A East 8
3 A East 10
6 C East 5

Пример 2. Удаление строк, содержащих строку в списке

В следующем коде показано, как удалить все строки во фрейме данных, содержащие «A» или «B» в столбце команды:

df[!grepl('A|B', df$team),]

6 C East 5

Мы также можем определить вектор строк, а затем удалить все строки во фрейме данных, которые содержат любые строки в векторе в столбце команды:

#define vector of strings
remove <- c('A', 'B')

#remove rows that contain any string in the vector in the team column
df[!grepl( paste (remove, collapse='|'), df$team),]

6 C East 5

Обратите внимание, что оба метода приводят к одному и тому же результату.

Дополнительные ресурсы

Как удалить строки с некоторыми или всеми NA в R
Как удалить повторяющиеся строки в R
Как суммировать определенные строки в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.