100 Question
Aufgaben, Statistik, Prognose, Modellierung, R, Datenanalyse, Regression
Schreiben Sie eine Funktion, mit folgendem Algorithmus, wobei ein beliebiger Vektor als Eingabe verlangt wird.
- Zähle die Anzahl verschiedener Werte.
- Wenn es nur zwei verschiedene Werte gibt, gebe
TRUEzurück, ansonstenFALSE.
Hinweise:
- Wählen Sie einen treffenden Namen für Ihre Funktion (nutzen Sie am besten ein konsistentes Namensschema).
- Wichtigster Tipp: Googeln :-)
- Verschiedene Werte eines Vektors gibt die Funktion
unique()zurück. - Vermutlich gibt es schon viele Lösungen (Implementierungen) für diese Funktion. Ist nur als Übung gedacht :-)
101 Solution
levels ist ein Ausdruck, der nahelegt, dass es sich um verschiedene Werte (“Ausprägungen” oder “Stufen”) handelt.
Alternativ könnte man die Funktion auch so schreiben:
Das ist expliziter, aber länger.
Wenn man es genau nimmt, heißt binär, dass es nur die Werte 0 und 1 gibt. Das ist ein strengeres Kriterium, wie dass es zwei beliebigen verschiedene Werte gibt (s. unten dazu ein Vorschlag).
Testen wir unsere Funktion, Test 1:
Test 2:
data(mtcars)Wir wenden unsere neue Funktion mit Tidyverse-Methoden an:
Bonus!
Verwenden Sie across() (dplyr), um alle Spalten von mtcars mit has_two_levels() zu überprüfen.
mtcars %>%
summarise(across(everything(),
has_two_levels))Kann man auch so schreiben:
mtcars %>%
summarise(across(everything(),
~ has_two_levels(.)))Bonus-Bonus:
So könnte man eine Funktion schreiben, die prüft, ob die Ausprägungen eines Vektors binär sind, d.h. nur 0 oder 1:
102 Meta-information
extype: string exsolution: NA exname: funs-is-binary expoints: 1