So verwenden Sie die in R Familie von Funktionen Nehmen

Mit für

Schleifen hat einige sehr wichtige Nebenwirkungen. Die Objekte, die Sie in der erstellen für Schleife später im Arbeitsbereich bleiben. Objekte, die Sie in die ändern für Schleife werden im Arbeitsbereich geändert. Während dies die Absichten für einige sein kann, für andere, ist dies ein unerwünschter Nebeneffekt des Weges für Schleifen sind in R. umgesetzt

Werfen Sie einen Blick auf das folgende Beispiel:

> Songline lt; - "Raus aus meinen Träumen ..."> für (Songline in 1: 5) print ( '... Kommen Sie in mein Auto!')

Im Gegensatz zu dem, was Sie erwarten können, nach diesen Code ausgeführt wird, um den Wert von Songline ist nicht die Zeichenfolge "Raus aus meinen Träumen ...", aber die Anzahl 5, wie in der Ausgangs unten gezeigt:

> Songline [1] 5

Obwohl Sie nie geändert explizit den Wert Songline irgendwo im Code, tut R so implizit, wenn die Durchführung für Schleife. Jede Iteration neu zuweist R den nächsten Wert aus dem Vektor Songline . . . im Arbeitsbereich!

Durch die Wahl mit Bedacht die Namen der Variablen und die Kennung, können Sie laufen in Schwierigkeiten zu vermeiden. Wenn große Skripte zu schreiben, müssen Sie einige ernsthafte Buchhaltung für die Namen zu tun, um Fehler zu vermeiden.

Um ganz korrekt ist, eine mit für Schleife hat eine Wirkung auf die Umgebung, die Sie in diesem Moment in Arbeit. Wenn Sie nur verwenden, die für Schleife in Skripts, die Sie in der Konsole ausführen, nehmen die Auswirkungen in den Arbeitsbereich. Wenn Sie ein für Schleife in dem Körper der Funktion, nehmen die Auswirkungen innerhalb der Umgebung dieser Funktion.

Hier ist die gute Nachricht: R ein weiteres Looping-System hat, das sehr leistungsfähig ist, das ist zumindest so schnell wie für Schleifen (und viel schneller manchmal), und - am wichtigsten von allem - das ist nicht die Nebenwirkungen der eine hat für Schleife. Tatsächlich besteht dieses System aus einer kompletten Familie von Funktionen zur Verfügung, wie die bekannte anwenden Familie. Diese Familie enthält sieben Funktionen, die alle mit der Endung anwenden.

Die Familie Features

Bevor Sie mit einer der Funktionen in der Familie gelten beginnen, hier sind die wichtigsten Eigenschaften dieser Funktionen:

  • Jeder der Anwendung Funktionen dauert mindestens zwei Argumente: ein Objekt und eine andere Funktion. Sie passieren die Funktion als Argument.

  • Keiner von ihnen gelten Funktionen Nebenwirkungen hat. Dies ist der Hauptgrund, sie zu benutzen !: Wenn Sie eine Funktion anwenden, anstatt eine verwenden können für Schleife, verwenden Sie die Lösung anzuwenden. Beachten Sie, dass mögliche Nebenwirkungen von der angewandt Funktion werden nicht betreut von der Familie gelten genommen.

  • Jede Funktion anwenden können, auf Argumente an die Funktion übergeben, die als Argument angegeben wird. Er tut, dass die Verwendung von Punkte Streit.

  • Jede Funktion der Anwendung Familie liefert immer ein Ergebnis. die Familie gelten Verwendung macht nur Sinn, wenn man das Ergebnis benötigen. Wenn Sie mit Meldungen an die Konsole zu drucken drucken() oder Katze() beispielsweise die Familie gelten Verwendung ist nicht erforderlich.

Treffen Sie drei der Mitglieder

Sag Hallo zu apply (), sapply (), und lapply (), die am häufigsten verwendeten Mitglieder der Familie gelten. Jede dieser Funktionen gilt eine andere Funktion auf alle Elemente in einem Objekt. Was diese Elemente sind, hängt von dem Objekt und der Funktion.

FunktionsnameObjekte Die Funktion arbeitet aufWas die Funktion sieht als ElementeErgebnistyp
anwendenMatrixZeilen oder SpaltenVektor, Matrix, ein Array oder Liste
FeldZeilen, Spalten oder jede DimensionVektor, Matrix, ein Array oder Liste
DatenrahmenZeilen oder SpaltenVektor, Matrix, ein Array oder Liste
sapplyVektorElementsVektor, Matrix oder Liste
DatenrahmenVariablenVektor, Matrix oder Liste
ListeElementsVektor, Matrix oder Liste
lapplyVektorElementsListe
DatenrahmenVariablenListe
ListeElementsListe

Menü