Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Umgang mit Fehlenden Daten | Datenmanipulation und -Bereinigung
Datenanalyse Mit R

bookUmgang mit Fehlenden Daten

Fehlende Daten sind ein häufiges Problem in realen Datensätzen. Sie können die Genauigkeit der Analyse beeinträchtigen und zu irreführenden Ergebnissen führen, wenn sie nicht angemessen behandelt werden.

Erkennung fehlender Werte

Der erste Schritt besteht darin, zu überprüfen, wo und wie viele Daten in Ihrem Datensatz fehlen.

is.na(df)              # returns a logical matrix of TRUE/FALSE
sum(is.na(df))         # total number of missing values
colSums(is.na(df))     # missing values per column

Dies gibt einen klaren Überblick darüber, welche Spalten fehlende Daten enthalten und wie schwerwiegend das Problem ist.

Entfernen fehlender Werte

Manchmal ist es am einfachsten, fehlende Daten zu behandeln, indem Zeilen entfernt werden, die einen beliebigen NA-Wert enthalten. Dies stellt sicher, dass der Datensatz sauber ist, kann jedoch zu erheblichem Datenverlust führen, wenn viele Zeilen betroffen sind.

Base R

Die Funktion na.omit() entfernt alle Zeilen mit fehlenden Werten aus dem Datensatz.

df_clean <- na.omit(df)
sum(is.na(df_clean))

dplyr

Die gleiche Aufgabe kann mit der Funktion drop_na() durchgeführt werden.

df_clean <- df %>%
  drop_na()

Dieser Ansatz ist einfach und eignet sich gut, wenn nur wenige fehlende Werte vorhanden sind. Ist der Anteil fehlender Daten jedoch hoch, kann das Entfernen vieler Zeilen problematisch sein.

Ersetzen fehlender Werte

Anstatt Zeilen zu entfernen, ist Imputation eine effektivere Methode, bei der fehlende Werte durch sinnvolle Schätzwerte ersetzt werden. Dadurch bleibt die Datensatzgröße erhalten und Verzerrungen werden reduziert. Eine gängige Strategie für numerische Variablen ist das Ersetzen fehlender Werte durch den Mittelwert der Spalte.

Base R

Mit logischem Indexieren und is.na() können fehlende Werte gefunden und durch den Mittelwert der Spalte ersetzt werden.

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

dplyr

Die Imputation kann auch mit ifelse() innerhalb von mutate() durchgeführt werden.

df <- df %>%
  mutate(selling_price = ifelse(is.na(selling_price),
                                mean(selling_price, na.rm = TRUE),
                                selling_price))

Fehlende Werte in kategorialen Spalten auffüllen

Bei kategorialen Variablen (Zeichenketten- oder Faktor-Spalten) werden fehlende Werte häufig durch einen festen Platzhalter wie "Unknown" ersetzt.

Base R

df$fuel[is.na(df$fuel)] <- "Unknown"

dplyr

Die Funktion replace_na() bietet eine übersichtlichere Möglichkeit, fehlende Werte zu ersetzen.

df <- df %>%
  mutate(fuel = replace_na(fuel, "Unknown"))

Dieser Ansatz stellt sicher, dass fehlende Werte konsistent behandelt werden und die Spalte für Berichte oder Modellierung gültig bleibt.

question mark

Wie ersetzt man NA in der Spalte fuel durch "Unknown"?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 10

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain the difference between removing and imputing missing values?

How do I decide whether to drop or fill missing data in my dataset?

Can you show more examples of handling missing values in R?

Awesome!

Completion rate improved to 4

bookUmgang mit Fehlenden Daten

Swipe um das Menü anzuzeigen

Fehlende Daten sind ein häufiges Problem in realen Datensätzen. Sie können die Genauigkeit der Analyse beeinträchtigen und zu irreführenden Ergebnissen führen, wenn sie nicht angemessen behandelt werden.

Erkennung fehlender Werte

Der erste Schritt besteht darin, zu überprüfen, wo und wie viele Daten in Ihrem Datensatz fehlen.

is.na(df)              # returns a logical matrix of TRUE/FALSE
sum(is.na(df))         # total number of missing values
colSums(is.na(df))     # missing values per column

Dies gibt einen klaren Überblick darüber, welche Spalten fehlende Daten enthalten und wie schwerwiegend das Problem ist.

Entfernen fehlender Werte

Manchmal ist es am einfachsten, fehlende Daten zu behandeln, indem Zeilen entfernt werden, die einen beliebigen NA-Wert enthalten. Dies stellt sicher, dass der Datensatz sauber ist, kann jedoch zu erheblichem Datenverlust führen, wenn viele Zeilen betroffen sind.

Base R

Die Funktion na.omit() entfernt alle Zeilen mit fehlenden Werten aus dem Datensatz.

df_clean <- na.omit(df)
sum(is.na(df_clean))

dplyr

Die gleiche Aufgabe kann mit der Funktion drop_na() durchgeführt werden.

df_clean <- df %>%
  drop_na()

Dieser Ansatz ist einfach und eignet sich gut, wenn nur wenige fehlende Werte vorhanden sind. Ist der Anteil fehlender Daten jedoch hoch, kann das Entfernen vieler Zeilen problematisch sein.

Ersetzen fehlender Werte

Anstatt Zeilen zu entfernen, ist Imputation eine effektivere Methode, bei der fehlende Werte durch sinnvolle Schätzwerte ersetzt werden. Dadurch bleibt die Datensatzgröße erhalten und Verzerrungen werden reduziert. Eine gängige Strategie für numerische Variablen ist das Ersetzen fehlender Werte durch den Mittelwert der Spalte.

Base R

Mit logischem Indexieren und is.na() können fehlende Werte gefunden und durch den Mittelwert der Spalte ersetzt werden.

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

dplyr

Die Imputation kann auch mit ifelse() innerhalb von mutate() durchgeführt werden.

df <- df %>%
  mutate(selling_price = ifelse(is.na(selling_price),
                                mean(selling_price, na.rm = TRUE),
                                selling_price))

Fehlende Werte in kategorialen Spalten auffüllen

Bei kategorialen Variablen (Zeichenketten- oder Faktor-Spalten) werden fehlende Werte häufig durch einen festen Platzhalter wie "Unknown" ersetzt.

Base R

df$fuel[is.na(df$fuel)] <- "Unknown"

dplyr

Die Funktion replace_na() bietet eine übersichtlichere Möglichkeit, fehlende Werte zu ersetzen.

df <- df %>%
  mutate(fuel = replace_na(fuel, "Unknown"))

Dieser Ansatz stellt sicher, dass fehlende Werte konsistent behandelt werden und die Spalte für Berichte oder Modellierung gültig bleibt.

question mark

Wie ersetzt man NA in der Spalte fuel durch "Unknown"?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 10
some-alt