Fehlende Werte in R ersetzen - so geht's

Von Fabian
Kategorie: R
Tags: Operationen
Lesezeit: 3 Minuten

Oft möchten Sie fehlende Werte in den Spalten eines Dataframes in R durch den Mittelwert oder den Median dieser bestimmten Spalte ersetzen.

Um die fehlenden Werte in einer einzelnen Spalte zu ersetzen, können Sie die folgende Syntax verwenden:

df$col[is.na(df$col)] <- mean(df$col, na.rm=TRUE)

Um die fehlenden Werte in mehreren Spalten zu ersetzen, können Sie die folgende Syntax verwenden:

for(i in 1:ncol(df)) {
  df[ , i][is.na(df[ , i])] <- mean(df[ , i], na.rm=TRUE)
}

In diesem Tutorial wird genau erklärt, wie diese Funktionen in der Praxis verwendet werden.

Beispiel 1: Ersetzen Sie fehlende Werte durch Spaltenmittel

Der folgende Code zeigt, wie die fehlenden Werte in der ersten Spalte eines Dataframes durch den Mittelwert der ersten Spalte ersetzt werden:

#Dataframe erstellen
df <- data.frame(var1=c(1, NA, NA, 4, 5),
                 var2=c(7, 7, 8, 3, 2),
                 var3=c(3, 3, 6, 6, 8),
                 var4=c(1, 1, 2, 8, 9))

#Ersetzen Sie fehlende Werte in der ersten Spalte durch den Mittelwert der ersten Spalte
df$var1[is.na(df$var1)] <- mean(df$var1, na.rm=TRUE)

#Dataframe anzeigen mit fehlenden Werten ersetzt
df

      var1 var2 var3 var4
1 1.000000    7    3    1
2 3.333333    7    3    1
3 3.333333    8    6    2
4 4.000000    3    6    8
5 5.000000    2    8    9

Der Mittelwert in der ersten Spalte betrug 3,333 , daher wurden die fehlenden Werte in der ersten Spalte durch 3,333 ersetzt.

Der folgende Code zeigt, wie die fehlenden Werte in jeder Spalte durch den Mittelwert ihrer eigenen Spalte ersetzt werden:

#Dataframe erstellen
df <- data.frame(var1=c(1, NA, NA, 4, 5),
                 var2=c(7, 7, 8, NA, 2),
                 var3=c(NA, 3, 6, NA, 8),
                 var4=c(1, 1, 2, 8, 9))

#Ersetzen Sie fehlende Werte in jeder Spalte durch den Spaltenmittelwert
for(i in 1:ncol(df)) {
  df[ , i][is.na(df[ , i])] <- mean(df[ , i], na.rm=TRUE)
}

#Dataframe anzeigen mit fehlenden Werten ersetzt
df

      var1 var2     var3 var4
1 1.000000    7 5.666667    1
2 3.333333    7 3.000000    1
3 3.333333    8 6.000000    2
4 4.000000    6 5.666667    8
5 5.000000    2 8.000000    9

Beispiel 2: Ersetzen Sie fehlende Werte durch Spaltenmediane

Der folgende Code zeigt, wie die fehlenden Werte in der ersten Spalte eines Dataframes durch den Medianwert der ersten Spalte ersetzt werden:

#Dataframe erstellen
df <- data.frame(var1=c(1, NA, NA, 4, 5),
                 var2=c(7, 7, 8, NA, 2),
                 var3=c(NA, 3, 6, NA, 8),
                 var4=c(1, 1, 2, 8, 9))

#Ersetzen Sie fehlende Werte in der ersten Spalte durch den Median der ersten Spalte
df$var1[is.na(df$var1)] <- median(df$var1, na.rm=TRUE)

#Dataframe anzeigen mit fehlenden Werten ersetzt
df

  var1 var2 var3 var4
1    1    7   NA    1
2    4    7    3    1
3    4    8    6    2
4    4   NA   NA    8
5    5    2    8    9

Der Medianwert in der ersten Spalte war 4, daher wurden die fehlenden Werte in der ersten Spalte durch 4 ersetzt.

Der folgende Code zeigt, wie die fehlenden Werte in jeder Spalte durch den Median der eigenen Spalte ersetzt werden:

#Dataframe erstellen
df <- data.frame(var1=c(1, NA, NA, 4, 5),
                 var2=c(7, 7, 8, NA, 2),
                 var3=c(NA, 3, 6, NA, 8),
                 var4=c(1, 1, 2, 8, 9))

#Ersetzen Sie fehlende Werte in jeder Spalte durch Spaltenmediane
for(i in 1:ncol(df)) {
  df[ , i][is.na(df[ , i])] <- median(df[ , i], na.rm=TRUE)
}

#Dataframe anzeigen mit fehlenden Werten ersetzt
df

  var1 var2 var3 var4
1    1    7    6    1
2    4    7    3    1
3    4    8    6    2
4    4    7    6    8
5    5    2    8    9

Zusätzliche Ressourcen

So durchlaufen Sie Spaltennamen in R
So berechnen Sie den Mittelwert mehrerer Spalten in R
So summieren Sie bestimmte Spalten in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: