Wie Falls Aussagen in R zu verwenden

Ob Aussagen kann sehr nützlich in R sein, da sie in einer beliebigen Programmiersprache sind ,. Oft wollen Sie Entscheidungen zu treffen und abhängig von einem bestimmten Wert zu handeln.

eine Wahl in Ihrem Code zu definieren, ist ganz einfach: Wenn diese Bedingung erfüllt ist, dann eine bestimmte Aufgabe auszuführen. Viele Programmiersprachen können Sie tun, mit genau diesen Worten: ob . . . dann. R macht es noch einfacher: Sie können das Wort fallen kann dann und geben Sie Ihre Wahl in ein ob Erklärung.

Ein ob Aussage in R besteht aus drei Elementen:

  • Das Schlüsselwort ob

  • Ein einziger logischer Wert zwischen Klammern (oder ein Ausdruck, der zu einem einzigen logischen Wert führt)

  • Ein Block von Code zwischen Klammern, die ausgeführt werden muss, wenn der logische Wert ist WAHR

Hier ist eine sehr kleine Funktion, Preiskalkulator (), dass berechnet den Preis, den Sie zu einem Kunden in Rechnung basiert auf den Stunden der Arbeit, die Sie für den Kunden haben. Die Funktion sollte die Anzahl der Stunden in Anspruch nehmen (Stunden) Und der Preis pro Stunde (pph) Als Eingabe. Das Preiskalkulator () Funktion könnte so etwas wie dieses:

Preiskalkulator lt; - Funktion (Stunden, pph = 40) {net.price lt; - Stunden * pphround (net.price)}

Hier ist, was der Code ausführt:

  • Mit dem Funktion Stichwort definieren Sie die Funktion.

  • Alles, was zwischen den geschweiften Klammern ist der Körper der Funktion (siehe Kapitel 8).

  • Zwischen den Klammern geben Sie die Argumente Stunden (Ohne Standardwert) und pph (Mit einem Standardwert von $ 40 pro Stunde).

  • Sie berechnen den Nettopreis durch Multiplikation Stunden durch pph.

  • Das Ergebnis der letzten Anweisung in den Körper Ihrer Funktion ist der zurückgegebene Wert. In diesem Fall ist dies der Gesamtpreis für den Dollar gerundet.

Man könnte das Argument fallen pph und multiplizieren Sie nur wenige Stunden von 40. Aber das würde bedeuten, dass, wenn zum Beispiel Ihr Kollege einen anderen Stundensatz verwendet, würde er den Wert in den Körper der Funktion, um sich ändern müssen in der Lage sein, es zu benutzen. Es ist eine gute Codierung Praxis Argumente mit Standardwerten für einen beliebigen Wert zu verwenden, die sich ändern können. Dadurch macht so eine Funktion flexibler und nutzbar.

Nun stellen Sie einige große Kunden haben, dass Sie eine Menge Arbeit geben. Damit sie glücklich, entscheiden Sie ihnen eine Ermäßigung von 10 Prozent auf den Preis pro Stunde für Aufträge zu geben, die mehr als 100 Stunden Arbeit einzubeziehen. Also, wenn die Zahl der geleisteten Arbeitsstunden ist größer als 100 ist, berechnen Sie den neuen Preis, indem Sie den Preis multipliziert mit 0,9.

Sie können, dass wie dies fast wörtlich in Ihrem Code schreiben:

Preiskalkulator lt; - Funktion (Stunden, pph = 40) {net.price lt; - Stunden * pphif (Stunden> 100) {net.price lt; - net.price * 0,9} round (net.price)}

Kopieren Sie diesen Code in einer Skriptdatei, und senden Sie es an die Konsole, um es für den Einsatz zur Verfügung zu stellen. Wenn Sie diese Funktion ausprobieren, können Sie sehen, dass die Reduktion nur dann gegeben wird, wenn die Anzahl der Stunden, die größer als 100 ist:

> Preiskalkulator (Stunden = 55) [1] 2200> Preiskalkulator (Stunden = 110) [1] 3960

Dieses Konstrukt ist die allgemeinste Art und Weise Sie eine angeben ob Erklärung. Aber wenn Sie nur eine kurze Zeile Code in dem Codeblock haben, müssen Sie nicht Klammern um es ausdrückte. Sie können die komplette ändern ob Anweisung in der Funktion mit der folgenden Zeile:

if (Stunden> 100) net.price lt; - net.price * 0.9

Der übliche Weg, um Hilfe zu bekommen auf einer Funktion mit dem Namen, beispielsweise fun.name (?fun.name) Funktioniert nicht für ob. Zum Zugriff auf die eingebaute Hilfe für ob, Sie haben die Funktion Namen zu zitieren. Sie können einfache Anführungszeichen, doppelte Anführungszeichen oder Backticks verwenden. Jede der folgenden Aussagen gelangen Sie auf die Hilfeseite für ob:

?"Wenn"? ", Wenn"? `If`

Menü