Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering af Manglende Data | Datamanipulation og -Rensning
Dataanalyse med R

bookHåndtering af Manglende Data

Manglende data er et almindeligt problem i virkelige datasæt. Det kan påvirke analysens nøjagtighed og føre til vildledende resultater, hvis det ikke håndteres korrekt.

Registrering af manglende værdier

Første trin er at undersøge, hvor og hvor meget data der mangler i datasættet.

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

Dette giver et klart overblik over, hvilke kolonner der har manglende data, og hvor alvorligt problemet er.

Fjernelse af manglende værdier

Nogle gange er den enkleste måde at håndtere manglende data på at fjerne rækker, der indeholder nogen NA-værdier. Dette sikrer, at datasættet er rent, men det kan også resultere i betydeligt datatab, hvis mange rækker er berørt.

Base R

Funktionen na.omit() fjerner alle rækker med manglende værdier fra datasættet.

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

dplyr

Den samme opgave kan udføres ved hjælp af funktionen drop_na().

df_clean <- df %>%
  drop_na()

Denne metode er enkel og fungerer godt, når mængden af manglende data er lille, men er muligvis ikke ideel, hvis mange rækker fjernes i processen.

Erstatning af manglende værdier

I stedet for at fjerne rækker er en mere effektiv tilgang imputation, hvor manglende værdier erstattes med meningsfulde estimater. Dette hjælper med at bevare datasættets størrelse og reducere bias. En almindelig strategi for numeriske variabler er at erstatte manglende værdier med kolonnens gennemsnit.

Base R

Logisk indeksering med is.na() kan anvendes til at finde manglende værdier og tildele dem gennemsnittet af kolonnen.

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

dplyr

Imputation kan også håndteres ved at bruge ifelse() inden for mutate().

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

Udfyldning af manglende værdier i kategoriske kolonner

For kategoriske variabler (tegn- eller faktorkolonner) erstattes manglende værdier ofte med en fast pladsholder såsom "Unknown".

Base R

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

dplyr

Funktionen replace_na() giver en mere overskuelig metode til at udfylde manglende værdier.

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

Denne metode sikrer, at manglende værdier håndteres ensartet, og at kolonnen forbliver gyldig til rapportering eller modellering.

question mark

Hvordan erstattes NA i kolonnen fuel med "Unknown"?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

bookHåndtering af Manglende Data

Stryg for at vise menuen

Manglende data er et almindeligt problem i virkelige datasæt. Det kan påvirke analysens nøjagtighed og føre til vildledende resultater, hvis det ikke håndteres korrekt.

Registrering af manglende værdier

Første trin er at undersøge, hvor og hvor meget data der mangler i datasættet.

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

Dette giver et klart overblik over, hvilke kolonner der har manglende data, og hvor alvorligt problemet er.

Fjernelse af manglende værdier

Nogle gange er den enkleste måde at håndtere manglende data på at fjerne rækker, der indeholder nogen NA-værdier. Dette sikrer, at datasættet er rent, men det kan også resultere i betydeligt datatab, hvis mange rækker er berørt.

Base R

Funktionen na.omit() fjerner alle rækker med manglende værdier fra datasættet.

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

dplyr

Den samme opgave kan udføres ved hjælp af funktionen drop_na().

df_clean <- df %>%
  drop_na()

Denne metode er enkel og fungerer godt, når mængden af manglende data er lille, men er muligvis ikke ideel, hvis mange rækker fjernes i processen.

Erstatning af manglende værdier

I stedet for at fjerne rækker er en mere effektiv tilgang imputation, hvor manglende værdier erstattes med meningsfulde estimater. Dette hjælper med at bevare datasættets størrelse og reducere bias. En almindelig strategi for numeriske variabler er at erstatte manglende værdier med kolonnens gennemsnit.

Base R

Logisk indeksering med is.na() kan anvendes til at finde manglende værdier og tildele dem gennemsnittet af kolonnen.

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

dplyr

Imputation kan også håndteres ved at bruge ifelse() inden for mutate().

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

Udfyldning af manglende værdier i kategoriske kolonner

For kategoriske variabler (tegn- eller faktorkolonner) erstattes manglende værdier ofte med en fast pladsholder såsom "Unknown".

Base R

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

dplyr

Funktionen replace_na() giver en mere overskuelig metode til at udfylde manglende værdier.

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

Denne metode sikrer, at manglende værdier håndteres ensartet, og at kolonnen forbliver gyldig til rapportering eller modellering.

question mark

Hvordan erstattes NA i kolonnen fuel med "Unknown"?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10
some-alt