Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Hantering av Saknade Data | Datamanipulering och Datarensning
Dataanalys med R

bookHantering av Saknade Data

Saknade data är ett vanligt problem i verkliga datamängder. Det kan påverka analysens noggrannhet och leda till missvisande resultat om det inte hanteras korrekt.

Upptäcka saknade värden

Det första steget är att kontrollera var och hur mycket data som saknas i din datamängd.

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

Detta ger en tydlig bild av vilka kolumner som har saknade data och hur allvarligt problemet är.

Ta bort saknade värden

Ibland är det enklaste sättet att hantera saknade data att ta bort rader som innehåller några NA-värden. Detta säkerställer att datamängden är ren, men det kan också leda till betydande dataförlust om många rader påverkas.

Base R

Funktionen na.omit() tar bort alla rader med saknade värden från datasettet.

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

dplyr

Samma uppgift kan utföras med funktionen drop_na().

df_clean <- df %>%
  drop_na()

Denna metod är enkel och fungerar bra när mängden saknade data är liten, men kan vara mindre lämplig om många rader tas bort i processen.

Ersätta saknade värden

Istället för att ta bort rader är en mer effektiv metod imputation, där saknade värden ersätts med meningsfulla uppskattningar. Detta hjälper till att bevara datasetets storlek och minska bias. En vanlig strategi för numeriska variabler är att ersätta saknade värden med kolumnens medelvärde.

Base R

Du kan använda logisk indexering med is.na() för att hitta saknade värden och tilldela dem medelvärdet för kolumnen.

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

dplyr

Du kan också hantera imputering genom att använda ifelse() inuti mutate().

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

Fyllning av saknade värden i kategoriska kolumner

För kategoriska variabler (tecken- eller faktorkolumner) ersätts saknade värden ofta med en fast platshållare såsom "Unknown".

Base R

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

dplyr

Funktionen replace_na() erbjuder ett mer överskådligt sätt att fylla i saknade värden.

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

Detta tillvägagångssätt säkerställer att saknade värden hanteras konsekvent och att kolumnen förblir giltig för rapportering eller modellering.

question mark

Hur ersätter du NA i kolumnen fuel med "Unknown"?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 10

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookHantering av Saknade Data

Svep för att visa menyn

Saknade data är ett vanligt problem i verkliga datamängder. Det kan påverka analysens noggrannhet och leda till missvisande resultat om det inte hanteras korrekt.

Upptäcka saknade värden

Det första steget är att kontrollera var och hur mycket data som saknas i din datamängd.

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

Detta ger en tydlig bild av vilka kolumner som har saknade data och hur allvarligt problemet är.

Ta bort saknade värden

Ibland är det enklaste sättet att hantera saknade data att ta bort rader som innehåller några NA-värden. Detta säkerställer att datamängden är ren, men det kan också leda till betydande dataförlust om många rader påverkas.

Base R

Funktionen na.omit() tar bort alla rader med saknade värden från datasettet.

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

dplyr

Samma uppgift kan utföras med funktionen drop_na().

df_clean <- df %>%
  drop_na()

Denna metod är enkel och fungerar bra när mängden saknade data är liten, men kan vara mindre lämplig om många rader tas bort i processen.

Ersätta saknade värden

Istället för att ta bort rader är en mer effektiv metod imputation, där saknade värden ersätts med meningsfulla uppskattningar. Detta hjälper till att bevara datasetets storlek och minska bias. En vanlig strategi för numeriska variabler är att ersätta saknade värden med kolumnens medelvärde.

Base R

Du kan använda logisk indexering med is.na() för att hitta saknade värden och tilldela dem medelvärdet för kolumnen.

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

dplyr

Du kan också hantera imputering genom att använda ifelse() inuti mutate().

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

Fyllning av saknade värden i kategoriska kolumner

För kategoriska variabler (tecken- eller faktorkolumner) ersätts saknade värden ofta med en fast platshållare såsom "Unknown".

Base R

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

dplyr

Funktionen replace_na() erbjuder ett mer överskådligt sätt att fylla i saknade värden.

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

Detta tillvägagångssätt säkerställer att saknade värden hanteras konsekvent och att kolumnen förblir giltig för rapportering eller modellering.

question mark

Hur ersätter du NA i kolumnen fuel med "Unknown"?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 10
some-alt