So ersetzen sie na durch den median in r
Sie können die folgenden Methoden verwenden, um NA-Werte durch den Median zu ersetzen, indem Sie Funktionen aus den dplyr- und Tidyr -Paketen in R verwenden:
Methode 1: Ersetzen Sie NA-Werte durch den Median in einer Spalte
df %>% mutate(across(col1, ~replace_na(., median(., na. rm = TRUE ))))
Methode 2: Ersetzen Sie NA-Werte durch den Median in mehreren Spalten
df %>% mutate(across(c(col1, col2), ~replace_na(., median(., na. rm = TRUE ))))
Methode 3: Ersetzen Sie die NA-Werte in allen numerischen Spalten durch den Median
df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Datenrahmen verwendet wird:
#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
Beispiel 1: Ersetzen Sie NA-Werte durch den Median in einer Spalte
Der folgende Code zeigt, wie die NA-Werte in der Punktspalte durch den Medianwert der Punktspalte ersetzt werden:
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
Der Medianwert in der Punktespalte betrug 15, daher wurde der NA-Wert in der Punktespalte durch 15 ersetzt.
Alle anderen Spalten blieben unverändert.
Beispiel 2: Ersetzen Sie NA-Werte durch Median in mehreren Spalten
Der folgende Code zeigt, wie die NA-Werte in den Punkt- und Blockspalten durch ihre jeweiligen Spaltenmediane ersetzt werden:
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
Beachten Sie, dass die NA-Werte in den Punkt- und Blockspalten beide durch ihre jeweiligen Spaltenmediane ersetzt wurden.
Beispiel 3: Ersetzen Sie NA-Werte in allen numerischen Spalten durch den Median
Der folgende Code zeigt, wie die NA-Werte in jeder numerischen Spalte durch ihren jeweiligen Medianwert ersetzt werden:
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
Beachten Sie, dass die NA-Werte in allen numerischen Spalten durch ihre jeweiligen Spaltenmediane ersetzt wurden.
Die einzige Spalte, die nicht numerisch war (Spieler), blieb unverändert.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in dplyr ausführen:
So filtern Sie Zeilen, die eine bestimmte Zeichenfolge enthalten, mit dplyr
So löschen Sie Zeilen mit dplyr
So verwenden Sie die Funktion across() in dplyr