Jak usunąć wiersze za pomocą dplyr (z przykładami)


Możesz użyć następującej podstawowej składni, aby usunąć wiersze z ramki danych w R za pomocą dplyr:

1. Usuń dowolny wiersz za pomocą NA

 df %>%
  n / A. omit ()

2. Usuń dowolny wiersz z NA w określonej kolumnie

 df %>%
filter( ! is. na (column_name))

3. Usuń duplikaty

 df %>%
  distinct()

4. Usuń wiersze według pozycji indeksu

 df %>%
filter( ! row_number() %in% c(1, 2, 4))

5. Usuń wiersze na podstawie warunku

 df %>%
  filter(column1 == ' A ' | column2 > 8)

Poniższe przykłady pokazują, jak w praktyce zastosować każdą z tych metod z następującą ramką danych:

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(4, NA, 7, 5, 9, 9),
                 assists=c(1, 3, 5, NA, 2, 2))

#view data frame
df

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2

Przykład 1: Usuń dowolny wiersz za pomocą NA

Poniższy kod pokazuje jak usunąć z ramki danych dowolne wiersze zawierające wartości NA:

 #remove any row with NA
df %>%
  n / A. omit ()

  team points assists
1 to 4 1
3 B 7 5
5 C 9 2
6 C 9 2

Przykład 2: Usuń dowolny wiersz z NA w określonych kolumnach

Poniższy kod pokazuje, jak usunąć dowolny wiersz zawierający wartości NA w określonej kolumnie:

 #remove any row with NA in 'points' column:
df %>%
  filter( ! is. na (dots))

  team points assists
1 to 4 1
2 B 7 5
3 B 5 NA
4 C 9 2
5 C 9 2

Przykład 3: Usuń zduplikowane wiersze

Poniższy kod pokazuje, jak usunąć zduplikowane wiersze:

 #remove duplicate rows
df %>%
  distinct()

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2

Przykład 4: Usuń wiersze według pozycji indeksu

Poniższy kod pokazuje, jak usunąć wiersze na podstawie pozycji indeksu:

 #remove rows 1, 2, and 4
df %>%
filter( ! row_number() %in% c(1, 2, 4))

  team points assists
1 B 7 5
2 C 9 2
3 C 9 2

Przykład 5: Usuń wiersze na podstawie warunku

Poniższy kod pokazuje, jak usunąć wiersze na podstawie określonych warunków:

 #only keep rows where team is equal to 'A' or points is greater than 8
df %>%
  filter(column1 == ' A ' | column2 > 8)

  team points assists
1 to 4 1
2 A NA 3
3 C 9 2
4 C 9 2

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe funkcje w dplyr:

Jak wybrać kolumny według indeksu za pomocą dplyr
Jak sortować zmienne według grup za pomocą dplyr
Jak zamienić NA na Zero w dplyr

Dodaj komentarz

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