Jak zastąpić na medianą w r
Aby zastąpić wartości NA medianą, możesz użyć następujących metod, korzystając z funkcji z pakietów dplyr i Tidyr w R:
Metoda 1: Zastąp wartości NA medianą w kolumnie
df %>% mutate(across(col1, ~replace_na(., median(., na. rm = TRUE ))))
Metoda 2: Zastąp wartości NA medianą w wielu kolumnach
df %>% mutate(across(c(col1, col2), ~replace_na(., median(., na. rm = TRUE ))))
Metoda 3: Zastąp wartości NA medianą we wszystkich kolumnach liczbowych
df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
Poniższe przykłady pokazują, jak w praktyce zastosować każdą metodę z następującą ramką danych:
#create data frame df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'), points=c(17, 13, NA, 9, 25), rebounds=c(3, 4, NA, NA, 8), blocks=c(1, 1, 2, 4, NA)) #view data frame df player points rebounds blocks 1 to 17 3 1 2 B 13 4 1 3 C NA NA 2 4 D 9 NA 4 5 E 25 8 NA
Przykład 1: Zamień wartości NA na medianę w kolumnie
Poniższy kod pokazuje, jak zastąpić wartości NA w kolumnie punktowej medianą wartości kolumny punktowej :
library (dplyr) library (tidyr) #replace NA values in points column with median of points column df <- df %>% mutate(across(points, ~replace_na(., median(., na. rm = TRUE )))) #view updated data frame df player points rebounds blocks 1 to 17 3 1 2 B 13 4 1 3 C 15 NA 2 4 D 9 NA 4 5 E 25 8 NA
Mediana wartości w kolumnie punktów wyniosła 15, zatem wartość NA w kolumnie punktów zastąpiono liczbą 15.
Pozostałe kolumny pozostały niezmienione.
Przykład 2: Zamień wartości NA na medianę w wielu kolumnach
Poniższy kod pokazuje, jak zastąpić wartości NA w kolumnach punktowych i blokowych odpowiednimi medianami kolumn:
library (dplyr) library (tidyr) #replace NA values in points and blocks columns with their respective medians df <- df %>% mutate(across(c(points, blocks), ~replace_na(., median(., na. rm = TRUE )))) #view updated data frame df player points rebounds blocks 1 to 17 3 1.0 2 B 13 4 1.0 3 C 15 NA 2.0 4 D 9 NA 4.0 5 E 25 8 1.5
Należy zauważyć, że wartości NA w kolumnach punktowych i blokowych zostały zastąpione odpowiednimi medianami kolumn.
Przykład 3: Zamień wartości NA na medianę we wszystkich kolumnach liczbowych
Poniższy kod pokazuje, jak zastąpić wartości NA w każdej kolumnie liczbowej odpowiednią wartością medianą:
library (dplyr) library (tidyr) #replace NA values in all numeric columns with their respective medians df <- df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE )))) #view updated data frame df player points rebounds blocks 1 to 17 3 1.0 2 B 13 4 1.0 3 C 15 4 2.0 4 D 9 4 4.0 5 E 25 8 1.5
Należy zauważyć, że wartości NA we wszystkich kolumnach liczbowych zostały zastąpione odpowiednimi medianami kolumn.
Jedyna kolumna, która nie była numeryczna (gracz), pozostała niezmieniona.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w dplyr:
Jak filtrować wiersze zawierające określony ciąg za pomocą dplyr
Jak usunąć wiersze za pomocą dplyr
Jak używać funkcjicross() w dplyr