Wie bewerbe ich mich Funktionen zu einem Vektor in R

Das apply () Funktion funktioniert auf alles, was Dimensionen in R hat, aber was, wenn Sie nicht über Dimensionen? Dafür haben Sie zwei ähnliche Funktionen aus der Anwendung der Familie zur Verfügung sapply () und lapply (). Das l im lapply steht für die Liste und die s im sapply steht für simplify.

Die beiden Funktionen arbeiten grundsätzlich die gleiche - der einzige Unterschied ist, dass lapply () immer gibt eine Liste mit dem Ergebnis, während sapply () versucht, die letzte Objekt, wenn möglich zu vereinfachen.

Beide sapply () und lapply () jeden Wert in dem Vektor betrachten ein Element zu sein, auf dem sie eine Funktion anwenden können. Viele Funktionen in R Arbeit in einer vektorisiert Weise, so dass es oft keine Notwendigkeit, dies zu nutzen.

Das Schalter() Funktion, funktioniert jedoch nicht in einer vektorisiert Weise. Betrachten Sie das folgende grundlegende Beispiel:

> Sapply (c ( 'a', 'b'), Schalter, a = 'Hallo', b = 'Auf Wiedersehen') a b "Hallo" "Auf Wiedersehen"

Das sapply () Anruf funktioniert sehr ähnlich wie die apply () nennen, obwohl Sie kein Argument haben, die den Index angibt. Hier ist eine kurze Zusammenfassung:

  • Das erste Argument ist der Vektor auf welchen Werten Sie die Funktion anwenden möchten - in diesem Fall den Vektor Taxi').

  • Das zweite Argument ist der Name der Funktion - in diesem Fall Schalter.

  • Alle anderen Argumente sind einfach die Argumente, die Sie zum Pass Schalter Funktion.

Das sapply () Funktion übernimmt nun zunächst den Wert 'ein' und dann wird der Wert 'B' als erstes Argument an Schalter(), unter Verwendung der Argumente a = "Hallo" und b = 'Auf Wiedersehen' jedes Mal, wie die anderen Argumente. Es kombiniert beide Ergebnisse in einen Vektor und verwendet die Werte von Taxi') als Namen für den resultierenden Vektor.

Das sapply () Funktion hat ein Argument USE.NAMES dass Sie einstellen FALSCH wenn Sie nicht wollen, sapply () Zeichenwerte als Namen für das Ergebnis zu verwenden.

Menü