Menu
Coddy logo textTech

Obsługa brakujących danych

Lekcja 11 z 14 w kursie Manipulowanie danymi w R w Coddy.

Brakujące wartości są zazwyczaj reprezentowane jako <strong>NA</strong> (niedostępne). Przyjrzyjmy się strategiom identyfikowania, usuwania i imputowania brakujących wartości.

Identyfikowanie brakujących danych

Aby sprawdzić, czy w R występują brakujące wartości, możesz użyć następujących funkcji:

# Sprawdź, czy wartość to NA
is.na(x)

# Policz wartości NA w wektorze
sum(is.na(x))

# Zidentyfikuj wiersze zawierające co najmniej jedną wartość NA w ramce danych
complete.cases(df)

Usuwanie brakujących danych

Możesz usunąć wiersze zawierające brakujące wartości, używając następujących metod:

# Usuń wiersze zawierające dowolną wartość NA
df_clean <- na.omit(df)

# Użyj dplyr, aby usunąć wiersze z wartościami NA w określonych kolumnach
library(dplyr)
df_clean <- df %>% filter(!is.na(column_name))

Imputowanie brakujących danych

Imputacja polega na zastępowaniu brakujących wartości wartościami oszacowanymi. Oto kilka popularnych technik imputacji:


# Uzupełnianie braków średnią
df$column[is.na(df$column)] <- mean(df$column, na.rm = TRUE)

# Uzupełnianie braków medianą
df$column[is.na(df$column)] <- median(df$column, na.rm = TRUE)

# Uzupełnianie braków dominantą dla danych kategorialnych
mode_value <- names(sort(table(df$category), decreasing = TRUE))[1]
df$category[is.na(df$category)] <- mode_value
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Średni

Utwórz funkcję, która przetwarza zbiór danych zawierający informacje o pacjentach i wynikach ich badań medycznych. Funkcja powinna wykonać następujące operacje:

  1. Przekształcić ciąg wejściowy w ramkę danych
  2. Określić i policzyć brakujące wartości w każdej kolumnie
  3. Usunąć wiersze z brakującymi wartościami w kolumnach 'age' lub 'test_result'
  4. Uzupełnić brakujące wartości w kolumnie 'blood_pressure' wartością mediany
  5. Utworzyć nową kolumnę 'status' na podstawie kolumny 'test_result':
    • Jeśli brakuje wartości test_result, ustawić status na "Unknown"
    • Jeśli test_result jest mniejsze niż 50, ustawić status na "Normal"
    • Jeśli test_result wynosi 50 lub więcej, ustawić status na "Elevated"
  6. Wyświetlić następujące informacje:
    • Liczbę brakujących wartości w każdej kolumnie przed przetwarzaniem
    • Liczbę usuniętych wierszy
    • Medianę ciśnienia krwi używaną do uzupełniania brakujących wartości
    • Przetworzoną ramkę danych

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
input_string <- suppressWarnings(readLines(con))

# Przekształć ciąg wejściowy w ramkę danych
data <- read.csv(text = input_string, stringsAsFactors = FALSE)

# TODO: Napisz swój kod poniżej
# 1. Znajdź i policz brakujące wartości
# 2. Usuń wiersze z brakującymi wartościami w 'age' lub 'test_result'
# 3. Uzupełnij brakujące wartości w 'blood_pressure'
# 4. Utwórz kolumnę 'status'
# 5. Wyświetl wymagane informacje

# Symbol zastępczy dla danych wyjściowych
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)

Wszystkie lekcje w sekcji Manipulowanie danymi w R

Poćwicz samodzielnie: Kompilator R online