Odp.: jak usunąć linie zawierające określony ciąg


Możesz użyć następującej składni, aby usunąć linie zawierające określony ciąg w ramce danych w R:

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

W tym samouczku przedstawiono kilka przykładów praktycznego zastosowania tej składni z następującą ramką danych w języku R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'),
                 conference=c('East', 'East', 'East', 'West', 'West', 'East'),
                 dots=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

Przykład 1: Usuń wiersze zawierające określony ciąg

Poniższy kod pokazuje, jak usunąć wszystkie wiersze z ramki danych zawierające literę „A” w kolumnie zespołu:

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

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

Lub możemy usunąć wszystkie wiersze z ramki danych zawierające „West” w kolumnie konferencji:

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

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

Przykład 2: Usuń wiersze zawierające ciąg na liście

Poniższy kod pokazuje, jak usunąć wszystkie wiersze z ramki danych zawierające „A” lub „B” w kolumnie zespołu:

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

6 C East 5

Moglibyśmy również zdefiniować wektor ciągów, a następnie usunąć wszystkie wiersze w ramce danych zawierające dowolny ciąg wektora w kolumnie zespołu:

 #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

Należy pamiętać, że obie metody prowadzą do tego samego wyniku.

Dodatkowe zasoby

Jak usunąć wiersze z niektórymi lub wszystkimi NA w R
Jak usunąć zduplikowane linie w R
Jak sumować określone wiersze w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *