Gestire i dati mancanti
Lezione 11 di 14 del corso Manipolazione dei dati in R di Coddy.
I valori mancanti sono generalmente rappresentati come <strong>NA</strong> (Non disponibile). Esploriamo le strategie per identificare, rimuovere e imputare i valori mancanti.
Identificare i dati mancanti
Per verificare la presenza di valori mancanti in R, puoi usare le seguenti funzioni:
# Verifica se un valore è NA
is.na(x)
# Conta gli NA in un vettore
sum(is.na(x))
# Identifica le righe con almeno un NA in un data frame
complete.cases(df)Rimuovere i dati mancanti
Puoi rimuovere le righe con valori mancanti usando questi metodi:
# Rimuovi le righe che contengono almeno un NA
df_clean <- na.omit(df)
# Usa dplyr per rimuovere le righe con NA in colonne specifiche
library(dplyr)
df_clean <- df %>% filter(!is.na(column_name))Imputare i dati mancanti
L’imputazione consiste nel sostituire i valori mancanti con valori stimati. Ecco alcune tecniche di imputazione comuni:
# Imputazione con la media
df$column[is.na(df$column)] <- mean(df$column, na.rm = TRUE)
# Imputazione con la mediana
df$column[is.na(df$column)] <- median(df$column, na.rm = TRUE)
# Imputazione con la moda per dati categorici
mode_value <- names(sort(table(df$category), decreasing = TRUE))[1]
df$category[is.na(df$category)] <- mode_valueQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
MedioCrea una funzione che elabori un set di dati contenente informazioni sui pazienti e sui risultati dei loro esami medici. La funzione deve eseguire le seguenti operazioni:
- Convertire la stringa di input in un frame di dati
- Individuare e contare il numero di valori mancanti in ogni colonna
- Rimuovere le righe con valori mancanti nelle colonne 'age' o 'test_result'
- Imputare i valori mancanti nella colonna 'blood_pressure' con il valore mediano
- Creare una nuova colonna 'status' in base a 'test_result':
- Se test_result è mancante, impostare status su "Unknown"
- Se test_result è inferiore a 50, impostare status su "Normal"
- Se test_result è pari o superiore a 50, impostare status su "Elevated"
- Stampare le seguenti informazioni:
- Numero di valori mancanti in ogni colonna prima dell'elaborazione
- Numero di righe rimosse
- Valore mediano della pressione sanguigna usato per l'imputazione
- Il frame di dati elaborato
Provalo tu
# Leggi l'input
con <- file("stdin", "r")
input_string <- suppressWarnings(readLines(con))
# Converti la stringa di input in un data frame
data <- read.csv(text = input_string, stringsAsFactors = FALSE)
# TODO: Scrivi il tuo codice qui sotto
# 1. Individua e conta i valori mancanti
# 2. Rimuovi le righe con valori mancanti in 'age' o 'test_result'
# 3. Imputa i valori mancanti in 'blood_pressure'
# 4. Crea la colonna 'status'
# 5. Stampa le informazioni richieste
# Segnaposto per l'output
cat("Missing values in each column before processing:\n")
print(missing_counts)
cat("\nNumber of rows removed:\n")
print(rows_removed)
cat("\nMedian blood pressure used for imputation:\n")
print(median_bp)
cat("\nProcessed data:\n")
print(data_clean)Tutte le lezioni di Manipolazione dei dati in R
3Rimodellare i dati
Dal formato wide al formato longDal formato long al formato wideGestire i dati mancantiEsercitati da solo: Compilatore R online