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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert