Wie die Anzahl der Zeilen in R zu reduzieren

Wenn das Skript in R Transformation, sind nicht alle Elemente erforderlich. In der Tat, die Rückkehr() Anweisung ist optional, da standardmäßig R immer den Wert der letzten Zeile des Codes in der Funktion Körper zurückzukehren.

Rückgabewerte von Standard

Angenommen, Sie vergessen, hinzuzufügen return (Ergebnis) in dem addPercent () Funktion. Was würde dann passieren? Sie können herausfinden, ob Sie die letzte Zeile des löschen addPercent () Funktion, speichern Sie die Datei, und es wieder beziehen sie in den Arbeitsbereich zu laden.

Jede Änderung, die Sie zu einer Funktion machen wird erst wirksam, nachdem Sie den Code angepasst an die Konsole zu senden. Dies wird wirksam die alte Funktion Objekt durch einen neuen überschrieben.

Wenn du es versuchst addPercent (new.numbers) wieder, wissen Sie. . . nichts. Offenbar hat die Funktion nichts mehr tun - aber das ist eine Illusion, wie Sie mit dem folgenden Code sehen können:

> Print (addPercent (new.numbers)) [1] "82,2%" "2,5%" "162%" "40%"

In diesem Fall gibt die letzte Zeile der Funktion den Wert Ergebnis unsichtbar, weshalb man sie nur sehen, wenn Sie ausdrücklich, es zu drucken fragen. Der Wert wird zurückgegeben unsichtbar aufgrund der Zuordnung in der letzten Zeile. Da dies nicht wirklich praktisch ist, können Sie die Zuordnung in der letzten Zeile löschen und den Funktionscode wie folgt ändern:


addPercent lt; - Funktion (x) {Prozent lt; - Runde (x * 100, Ziffern = 1) Paste (Prozent, "%", sep = "")}

Diese Funktion arbeitet wieder wie zuvor. Es kann aussehen Rückkehr() völlig nutzlos ist, aber man braucht es wirklich, wenn Sie die Funktion vor dem Ende des Codes in den Körper zu verlassen wollen. Zum Beispiel könnten Sie eine Zeile der hinzufügen addPercent Funktion, die prüft, ob x numerisch ist, und wenn nicht, kehrt NULL, so was:

addPercent lt; - (! is.numeric (x)) Funktion (x) {if return (NULL) Prozent lt; - Runde (x * 100, Ziffern = 1) Paste (Prozent, "%", sep = "")}

Brechen Sie die Wände

Die geschweiften Klammern, {}, bilden die sprichwörtlich Mauer um die Funktion, aber in einigen Fällen können Sie sie auch fallen. Angenommen, Sie die Chancen von einem Anteil berechnet werden soll. Die Wahrscheinlichkeit, dass etwas passiert, ist nicht mehr als die Chance, es durch die Möglichkeit geteilt kommt es nicht geschieht. Also, um die Chancen zu berechnen, können Sie eine Funktion wie folgt schreiben:

> Chancen lt; - Funktion (x) x / (1-x)

Auch ohne die Klammern oder Rückkehr() Aussage, das funktioniert völlig in Ordnung, wie Sie im folgenden Beispiel sehen können:

> Odds (0,8) [1] 4

Wenn eine Funktion von nur einer Zeile Code besteht, können Sie einfach diese Zeile nach der Argumentliste hinzufügen, ohne dass sie in geschweifte Klammern eingeschlossen wird. R wird der Code nach der Argumentliste als den Körper der Funktion zu sehen.

Sie könnten das gleiche mit dem zu tun addPercent () Funktion, indem sie alles wie diese Verschachtelung:

> addPercent lt; - Funktion (x) Paste (round (x * 100, Ziffern = 1), "%", sep = "")

Das ist ein schlauer Plan die nächste Person zu geben, dass Code eine große Kopfschmerzen zu lesen. Es ist ein bisschen weniger von einem schlauen Plan, wenn die nächste Person, die Sie ist, aber, und die Chancen sind, wird es sein.

Platz sparen in einem Funktionskörper ist weit weniger wichtig als den Code lesbar zu halten, weil platzsparend man nichts gewinnt. Konstrukten wie die Chancen Funktion sind nützlich, nur in ganz bestimmten Fällen.

» » » » Wie die Anzahl der Zeilen in R zu reduzieren