Wie man Loop Through Werte in R

Manchmal, wenn Entscheidungen über R zu machen, können Sie nur einen einzigen Wert verwenden, um Ihre Wahl der Basis auf. Man könnte diesen Code auf jeder Wert, den Sie von der Hand anwenden, aber es macht viel mehr Sinn, diese Aufgabe zu automatisieren.

Konstruieren Sie eine für Schleife

Wie in vielen anderen Programmiersprachen, wiederholen Sie eine Aktion für jeden Wert in einem Vektor durch eine mit für Schleife. Sie konstruieren ein für Schleife in R wie folgt:

für (in Werten i) {... etwas tun ...}

Dies für Schleife besteht aus den folgenden Teilen:

  • Das Schlüsselwort für, gefolgt von Klammern.

  • Eine Kennung zwischen den Klammern. In diesem Beispiel verwenden wir ich, aber das kann jeder Objektnamen, die Sie mögen.

  • Das Schlüsselwort im, was folgt die Kennung.

  • Ein Vektor mit Werten Schleife über. In diesem Beispielcode verwenden wir das Objekt Werte, aber das wiederum kann jeder Vektor Sie zur Verfügung haben.

  • Ein Codeblock zwischen Klammern, die für jeden Wert in dem Objekt durchgeführt werden muss, Werte.

In dem Codeblock, können Sie den Bezeichner verwenden. Jedesmal, wenn R durch den Code-Loops, weist R den nächsten Wert in dem Vektor mit den Werten der Kennung.

Berechnen Sie Werte in einem für Schleife

Schauen wir uns die noch einen Blick Preiskalkulator () Funktion. Früher, zeigen wir Ihnen einige Möglichkeiten diese Funktion anpassen, so dass Sie einen anderen Mehrwertsteuersatz für den öffentlichen, privaten und ausländischen Kunden anwenden können. Sie können keine dieser Optionen in einer vektorisiert Weise zu verwenden, aber man kann ein verwenden für Schleife, so kann die Funktion sofort den Preis für mehrere Kunden zu berechnen.

Verwenden Sie die Werte des Vektors

Passen Sie die Preiskalkulator () Funktion wie folgt:

Preiskalkulator lt; - Funktion (Stunden, pph = 40, Client) {net.price lt; - Stunden * pph * ifelse (Stunden> 100, 0,9, 1) Mehrwertsteuer lt; - numerisch (0) für (i in Client) {Mehrwertsteuer lt; - c (MwSt, Schalter (i, privat = 1,12, public = 1,06, 1))} tot.price lt; - net.price * VATround (tot.price)}

Der erste und der letzte Teil der Funktion haben sich nicht verändert, aber im mittleren Bereich, haben Sie folgende Möglichkeiten:

  1. Erstellen Sie einen numerischen Vektor mit Länge 0 und nennen es Mehrwertsteuer.

  2. Für jeden Wert in dem Vektor Client gelten Schalter() die richtige Höhe der Mehrwertsteuer zu wählen zu zahlen.

  3. In jeder Runde durch die Schleife, fügen Sie das Ergebnis Schalter() am Ende des Vektors Mehrwertsteuer.

Das Ergebnis ist ein Vektor, Mehrwertsteuer dass enthält, für jeden Client, die richtige Wertsteuer, die angewendet werden muss. Sie können dies testen, indem Sie hinzufügen, zum Beispiel eine variable Art zu den Datenrahmen Kunden erstellt, um Ihnen im vorigen Abschnitt wie folgt aus:

> Kunden $ type lt; - c ( "public", "im Ausland", "privat", "im Ausland")> Preiskalkulator (Clients $ Stunden, client = Kunden $ type) [1] 1060 3960 5040 1600

Menü