Die which()-Funktion in R

Die which()-Funktion in R gibt die Position oder den Index des Wertes zurück, der die gegebene Bedingung erfüllt. Die which()-Funktion in R gibt Ihnen die Position des Wertes in einem logischen Vektor. Die Position kann alles Mögliche sein, wie Zeilen, Spalten und sogar Vektoren.

Syntax der which()-Funktion in R

which(): Die which-Funktion in R gibt die Position der Werte im logischen Vektor zurück.

which(x, arr.ind = F, useNames = F)


Wo,

  • X = Ein Eingabe-logischer Vektor.
  • Arr.ind = Gibt die Array-Indizes zurück, wenn x ein Array ist.
  • useNames = Gibt die Dimensionennamen eines Arrays an.

Ein einfaches Beispiel für die which()-Funktion

Nun, Sie haben die Definition der which-Funktion zusammen mit ihrer Arbeitsweise erhalten. Jetzt, wenden wir unsere gelernten Dinge praktisch an.

Lassen Sie uns sehen, wie es funktioniert.

        which(letters == "p")
        16

        which(letters == "n")
        14

        which(letters == "l")
        12


“letters” ist eine eingebaute Konstante mit allen 26 Buchstaben des englischen Alphabets in serieller Anordnung.

Die oben genannten Ausgaben repräsentieren die Position jedes Buchstabens im Datenrahmen. Wie Sie sehen können, ist der Buchstabe “p” der 16. im Alphabet, während “l” und “n” jeweils der 14. und der 12. sind.

Verwendung der which()-Funktion mit Vektoren

Jetzt, erstellen wir einen Vektor in der R-Sprache und dann verwenden wir die which-Funktion, um die Position zu verfolgen.

       #einen Vektor erstellen 
        df <- c(5,4,3,2,1) #Position von 5 which(df == 5) 1 #Position von 1 which(df == 1) 5 #Position von Werten größer als 2 which(df > 2)
        1 2 3


Großartig! Die which()-Funktion in R gibt die Position der Werte in der gegebenen Eingabe zurück. Sie können die Funktion auch verwenden, um spezifische Bedingungen zu übergeben und die Positionen der Ausgaben zu erhalten, die den Bedingungen entsprechen, wie wir im letzten Beispiel gesehen haben.

Verwendung der which()-Funktion mit Datenrahmen

Jetzt, sehen wir, wie wir die which-Funktion in Bezug auf den Datenrahmen in R-Sprache anwenden können.

        df <- datasets::BOD
        df
            Zeit  Nachfrage
        1    1    8.3
        2     2   10.3
        3    3   19.0
        4    4   16.0
        5    5   15.6
        6    7   19.8


Zu diesem Zweck verwenden wir den BOD-Datensatz, der 2 Spalten enthält, nämlich Zeit und Nachfrage. Es ist ein weiterer eingebauter Datensatz.

Verwenden wir die which-Funktion und versuchen, die Position der Werte im Daten zu finden.

which(df$Nachfrage == '10.3')
    2


Sie können der which()-Funktion auch eine Liste von Werten eingeben. Schauen Sie sich das Beispiel unten an, in dem ich versuche, die Position von zwei Werten aus dem Datenrahmen zu finden.

       which(df$Nachfrage == c(8.3, 16.0))
        1    4

Finden von Spalten in einem Datenrahmen mit numerischen Werten mit der which()

Sie können die which()-Funktion sogar verwenden, um die Spaltennamen in einem Daten zu finden, das numerische Daten enthält.

Lassen Sie uns sehen, wie es in der R-Sprache funktioniert. Dafür verwenden wir den „Iris“-Datensatz.

        df <- datasets::iris
        df
        Sepal.Länge  Sepal.Breite   Petal.Länge   Petal.Breite  Spezies
        1            5.1         3.5          1.4         0.2     setosa
        ...
        11           5.4         3.7          1.5         0.2     setosa
        test <- which(sapply(df, is.numeric))
        Spaltennamen(df)[test]
        "Sepal.Länge" "Sepal.Breite"  "Petal.Länge" "Petal.Breite"


Die Ausgabe zeigt, dass der Iris-Datensatz 5 Spalten enthält. Davon sind 4 numerische Spalten und 1 ist kategorisch (Spezies).

Wir haben hier die sapply-Funktion in R zusammen mit der which()-Methode verwendet.

Die which()-Funktion hat nur die Namen der numerischen Spalten gemäß der Eingabebedingung zurückgegeben. Wenn Sie ein Datenanalyst sind, dann wird die which()-Funktion für Sie unverzichtbar sein.

Die which-Funktion mit Matrix in R

Schließlich sind wir bei der Matrix in R angekommen. Nun, Sie können die which()-Funktion in der R-Sprache verwenden, um die Position der Werte in einer Matrix zu ermitteln. Sie werden auch etwas über den Parameter arr.index in diesem Abschnitt erfahren.

Zuerst einmal – Erstellen einer Matrix

        df<-matrix(rep(c(1,0,1),4),nrow = 4)
        df
        [,1] [,2] [,3]
        [1,]    1    0    1
        [2,]    0    1    1
        ...
        [4,]    1    0    1


Fantastisch!!! Sie haben gerade eine gut aussehende Matrix erstellt. Glückwunsch. Lassen Sie uns die which()-Funktion verwenden, um die Position des Wertes ‚0‘ in unserer Matrix zu ermitteln.

        which(df==0,arr.ind = T)
        row col
        [1,]   2   1
        ...
        [4,]   3   3


Nun, die which-Funktion hat die Positionen des Wertes ‚0‘ in der Matrix zurückgegeben.

Das erste Auftreten von „0“ befindet sich in der zweiten Zeile, erste Spalte. Dann folgt das nächste Auftreten in der ersten Zeile, zweite Spalte. Dann haben wir die vierte Zeile, zweite Spalte. Und schließlich die dritte Zeile, dritte Spalte.

Fazit

Die which()-Funktion in R ist eine der am häufigsten verwendeten Funktionen in der Datenanalyse und -auswertung.

Die Funktion gibt die Position der Werte in den Daten an. Wenn Sie mit riesigen Datenmengen arbeiten, wird es schwierig sein, die Position bestimmter Werte darin zu finden, und genau hier kommt die which()-Funktion in R zum Einsatz.

Das ist vorerst alles. Viel Spaß beim Positionieren!!!

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: