Читать книгу R für Data Science - Hadley Wickham - Страница 53
Vergleiche
ОглавлениеUm effektiv filtern zu können, müssen Sie wissen, wie Sie die gewünschten Beobachtungen mithilfe der Vergleichsoperatoren auswählen. R bietet einen Satz von Standardoperatoren: >, >=, <, <=, != (ungleich) und == (gleich).
Als Einsteiger in R macht man leicht den Fehler, beim Test auf Gleichheit nur das einfache Gleichheitszeichen (=) statt des doppelten (==) zu verwenden. In diesem Fall erhalten Sie eine Fehlermeldung:
filter(flights, month = 1)
#> Error: filter() takes unnamed arguments. Do you need `==`?
Bei Tests auf Gleichheit mit == kann noch ein anderes Problem auftreten, und zwar bei Gleitkommazahlen. Die Ergebnisse werden Sie vielleicht überraschen!
sqrt(2) ^ 2 == 2
#> [1] FALSE
1/49 * 49 == 1
#> [1] FALSE
Computer führen arithmetische Berechnungen mit endlicher Genauigkeit aus (es liegt auf der Hand, dass sie keine unendliche Anzahl von Stellen speichern können!). Betrachten Sie also insbesondere Realzahlen lediglich als Approximation. Anstatt sich auf == zu verlassen, verwenden Sie besser near():
near(sqrt(2) ^ 2, 2)
#> [1] TRUE
near(1 / 49 * 49, 1)
#> [1] TRUE