Читать книгу R für Data Science - Hadley Wickham - Страница 55

Fehlende Werte

Оглавление

Ein wichtiges Feature von R, das einen Vergleich knifflig machen kann, sind fehlende Werte, die als NA für »not available« (nicht verfügbar) bezeichnet werden. NA stellt einen unbekannten Wert dar, sodass fehlende Werte »ansteckend« sind; fast jede Operation, an der ein unbekannter Wert beteiligt ist, wird selbst unbekannt sein:

NA > 5

#> [1] NA

10 == NA

#> [1] NA

NA + 10

#> [1] NA

NA / 2

#> [1] NA

Verwirrend ist insbesondere das Ergebnis des folgenden Ausdrucks:

NA == NA

#> [1] NA

Mit etwas mehr Kontext versteht man besser, warum es wahr ist:

# x sei das Alter von Maria. Wir wissen nicht, wie alt sie ist.

x <- NA

# y sei das Alter von Johann. Wir wissen nicht, wie alt er ist.

y <- NA

# Sind Johann und Maria gleich alt?

x == y

#> [1] NA

# Wir wissen es nicht!

Mit dem Ausdruck is.na() lässt sich ermitteln, ob ein Wert fehlt:

is.na(x)

#> [1] TRUE

Die Funktion filter() übernimmt nur die Zeilen in die Ergebnismenge, für die die Bedingung TRUE ist; sowohl FALSE- als auch NA-Werte werden ausgeschlossen. Falls Sie fehlende Werte bewahren möchten, müssen Sie sie explizit anfordern:

df <- tibble(x = c(1, NA, 3))

filter(df, x > 1)

#> # A tibble: 1 × 1

#> x

#> <dbl>

#> 1 3

filter(df, is.na(x) | x > 1)

#> # A tibble: 2 × 1

#> x

#> <dbl>

#> 1 NA

#> 2 3

R für Data Science

Подняться наверх