LoslegenKostenlos loslegen

ifelse()

Eine sehr nützliche Funktion ist ifelse(). Sie erstellt eine if-Abfrage in nur einer Codezeile – und mehr noch: Sie funktioniert auf ganzen Vektoren!

Angenommen, du hast einen Vektor mit Aktienkursen. Du möchtest jedes Mal "Buy!" zurückgeben, wenn apple > 110 ist, und ansonsten "Do nothing!"? Eine einfache if-Anweisung reicht dafür nicht aus. Mit ifelse() kannst du jedoch Folgendes tun:

apple
[1] 109.49 109.90 109.11 109.95 111.03 112.12

ifelse(test = apple > 110, yes = "Buy!", no = "Do nothing!")
[1] "Do nothing!" "Do nothing!" "Do nothing!" "Do nothing!" "Buy!"       
[6] "Buy!"

ifelse() wertet den test aus und erhält dadurch einen logischen Vektor. An den Stellen, an denen der Vektor TRUE ist, wird TRUE durch den Wert in yes ersetzt. Entsprechend wird FALSE durch no ersetzt.

Der Data Frame stocks steht dir zur Verfügung.

Diese Übung ist Teil des Kurses

R für Finanzen – Aufbaukurs

Kurs anzeigen

Anleitung zur Übung

  • Verwende ifelse(), um zu prüfen, ob micr über 60, aber unter 62 liegt. Wenn wahr, gib 1 zurück, sonst 0. Füge das Ergebnis als Spalte micr_buy zu stocks hinzu.
  • Verwende ifelse(), um zu prüfen, ob apple größer als 117 ist. Der zurückgegebene Wert soll bei TRUE die Spalte date sein, sonst NA.
  • Gib stocks aus. date ist eine Zahl geworden! ifelse() entfernt das Attribut vom Datum, bevor es zurückgegeben wird, daher wird es numerisch.
  • Weise der Spalte apple_date die class() "Date" zu.
  • Gib stocks erneut aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Microsoft test
stocks$micr_buy <- ifelse(test = ___, yes = ___, no = ___)

# Apple test
stocks$apple_date <- ifelse(test = ___, yes = stocks$date, no = NA)

# Print stocks
___

# Change the class() of apple_date.
class(___) <- ___

# Print stocks again
___
Code bearbeiten und ausführen