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