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

Dodaj komentarz

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