Вы можете использовать следующий синтаксис для удаления строк, содержащих определенную строку во фрейме данных в 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