Jak przeprowadzić czyszczenie danych w r (z przykładem)


Czyszczenie danych odnosi się do procesu przekształcania surowych danych w dane nadające się do analizy lub budowania modelu.

W większości przypadków „czyszczenie” zbioru danych polega na radzeniu sobie z brakującymi wartościami i zduplikowanymi danymi.

Oto najczęstsze metody „czyszczenia” zbioru danych w R:

Metoda 1: Usuń wiersze z brakującymi wartościami

 library (dplyr)

#remove rows with any missing values
df %>% na. omit ()

Metoda 2: Zastąp brakujące wartości inną wartością

 library (dplyr)
library (tidyr)

#replace missing values in each numeric column with median value of column
df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))

Metoda 3: Usuń zduplikowane wiersze

 library (dplyr)

df %>% distinct(. keep_all = TRUE )

Poniższe przykłady pokazują, jak w praktyce zastosować każdą z tych metod z następującą ramką danych w R, która zawiera informacje o różnych koszykarzach:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8),
                 rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11),
                 assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14))

#view data frame
df

   team points rebound assists
1 to 4 9 2
2 to 4 9 2
3 B NA 7 NA
4 C 8 6 7
5 D 6 8 6
6 E 12 NA 6
7 F 14 9 9
8 G 86 14 10
9:13:12 NA
10 I 8 11 14

Przykład 1: Usuń wiersze z brakującymi wartościami

Aby usunąć wiersze z brakującymi wartościami w dowolnej kolumnie, możemy zastosować następującą składnię:

 library (dplyr)

#remove rows with missing values
new_df <- df %>% na. omit ()

#view new data frame
new_df

   team points rebound assists
1 to 4 9 2
2 to 4 9 2
4 C 8 6 7
5 D 6 8 6
7 F 14 9 9
8 G 86 14 10
10 I 8 11 14

Należy pamiętać, że nowa ramka danych nie zawiera żadnych wierszy z brakującymi wartościami.

Przykład 2: Zastąp brakujące wartości inną wartością

Możemy użyć następującej składni, aby zastąpić brakujące wartości medianą wartości każdej kolumny:

 library (dplyr)
library (tidyr)

#replace missing values in each numeric column with median value of column
new_df <-df %>% mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) 

#view new data frame
new_df

   team points rebound assists
1 to 4 9 2.0
2 to 4 9 2.0
3 B 8 7 6.5
4 C 8 6 7.0
5 D 6 8 6.0
6 E 12 9 6.0
7 F 14 9 9.0
8 G 86 14 10.0
9:13 12 6.5
10 I 8 11 14.0

Należy zauważyć, że brakujące wartości w każdej kolumnie liczbowej zostały zastąpione medianą wartości kolumny.

Pamiętaj, że możesz także zastąpić medianę we wzorze średnią , aby zastąpić brakujące wartości średnią wartością każdej kolumny.

Uwaga : w tym przykładzie musieliśmy także załadować pakiet Tidyr , ponieważ funkcja drop_na() pochodzi z tego pakietu.

Przykład 3: Usuń zduplikowane wiersze

Możemy użyć następującej składni, aby zastąpić brakujące wartości medianą wartości każdej kolumny:

 library (dplyr)

#remove duplicate rows
new_df <- df %>% distinct(. keep_all = TRUE )

#view new data frame
new_df

  team points rebound assists
1 to 4 9 2
2 B NA 7 NA
3 C 8 6 7
4 D 6 8 6
5 E 12 NA 6
6 F 14 9 9
7 G 86 14 10
8:13:12 NA
9 I 8 11 14

Należy pamiętać, że drugi wiersz został usunięty z ramki danych, ponieważ każda z wartości w drugim wierszu była duplikatem wartości z pierwszego wiersza.

Uwaga : pełną dokumentację funkcji dplyr odrębny() znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak grupować i podsumowywać dane w R
Jak utworzyć tabele podsumowujące w R
Jak usunąć wiersze z brakującymi wartościami w R

Dodaj komentarz

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