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_valueTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŚredniUtwó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:
- Przekształcić ciąg wejściowy w ramkę danych
- Określić i policzyć brakujące wartości w każdej kolumnie
- Usunąć wiersze z brakującymi wartościami w kolumnach 'age' lub 'test_result'
- Uzupełnić brakujące wartości w kolumnie 'blood_pressure' wartością mediany
- 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"
- 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
1Podstawy danych
Poznawanie struktur danychIndeksowanie w DataFrameWybieranie podzbioru danychKonwersja typów danychOperator potoku w R4Zaawansowana manipulacja danymi
Manipulowanie ciągami znakówObsługa daty i czasuFunkcje niestandardowe2Przekształcanie danych
Wprowadzenie do dplyrAgregowanie danych za pomocą dplyrŁączenie danych za pomocą dplyrPoćwicz samodzielnie: Kompilator R online