So finden Sie den Index in r

So finden Sie den Index in r
In diesem R -Tutorial werden wir sehen, wie der Index eines bestimmten Elements in Vektor, Liste und in DataFrame zurückgibt.

Es gibt zwei Funktionen, die hilfreich sind, um einen Index der Besonderheit zu finden, der auf der Bedingung oder dem Ausdruck basiert.

Wir werden einzeln in jeder Datenstruktur diskutieren.

Welche () Funktion

Mit der Funktion der WHO () wird der Index eines Elements basierend auf der darin angegebenen Bedingung oder dem darin angegebenen Ausdruck zurückgegeben.

Syntax

welche (Bedingung/Ausdruck)

Es nimmt den Zustand oder den Ausdruck als Parameter.

Es ist auch möglich, die darin enthaltenen mehreren Bedingungen anzugeben.

Beispiel 1

In diesem Beispiel erstellen wir einen Vektor mit 10 numerischen Elementen und:

  1. Geben Sie den Index von 45 zurück, indem Sie die Bedingung anwenden - vector_object == 45.
  2. Geben Sie die Indizes von Elementen zurück, die größer als 90 sind, indem die Bedingung angewendet wird - Vector_Object> 90.
  3. Geben Sie die Indizes von Elementen zurück, die größer als 90 und gleich 95 sind, indem Sie den Zustand anwenden - Vektor_Object> 90 & Vector_Object == 95.
#Create Vector für Früchte
Früchte = C (23,45,67,8,90,123,45,95,789,54)
drucken (Früchte)
#Return Index für Wert beträgt 45
Druck (welche (Früchte == 45))
#Return Indizes für Werte mehr als 90
Druck (welche (Früchte> 90))
#Return Indizes für Werte von mehr als 90 und gleich 95
Druck (welche (Früchte> 90 & Früchte == 95))

Ergebnis

Für den ersten Zustand tritt an den 2. und 7. Positionen 45 auf.

Für den zweiten Zustand sind die Werte an den 6., 8. und 9. Positionen größer als 90. Für die dritte Bedingung ist der Wert an der 8. Position größer als 90 und entspricht 95.

Beispiel 2
In diesem Beispiel erstellen wir eine Liste mit 10 numerischen Elementen und:

  1. Geben Sie den Index von 45 zurück, indem Sie die Bedingung anwenden - list_object == 45
  2. Geben Sie die Indizes von Elementen zurück, die größer als 90 sind, indem Sie den Zustand anwenden - list_object> 90.
  3. Geben Sie die Indizes von Elementen zurück, die größer als 90 und gleich 95 sind, indem Sie die Bedingungen anwenden - list_object> 90 & list_object == 95.
#create Liste für Früchte
FRUITS = LISTE (23,45,67,8,90,123,45,95,789,54)
#Return Index für Wert beträgt 45
Druck (welche (Früchte == 45))
#Return Indizes für Werte mehr als 90
Druck (welche (Früchte> 90))
#Return Indizes für Werte von mehr als 90 und gleich 95
Druck (welche (Früchte> 90 & Früchte == 95))

Ergebnis

Für den ersten Zustand tritt an den 2. und 7. Positionen 45 auf.

Für den zweiten Zustand sind die Werte an den 6., 8. und 9. Positionen größer als 90. Für die dritte Bedingung ist der Wert an der 8. Position größer als 90 und gleich 95.

Beispiel 3
In diesem Beispiel erstellen wir einen Datenrahmen mit 10 numerischen Elementen in beiden Spalten und:

  1. Geben Sie den Index von 45 zurück, indem Sie die Bedingung anwenden - markt_id (Spalte) == 45.
  2. Geben Sie die Indizes von Elementen zurück, die größer als 90 sind, indem Sie den Zustand anwenden - Market_ID (Spalte)> 90.
  3. Geben Sie die Indizes von Elementen zurück, die größer als 90 und gleich 95 sind, indem Sie die Bedingungen anwenden - markt_id (Spalte)> 90 & markt_id (Spalte) == 95.
  4. Geben Sie den Index von 45 zurück, indem Sie den Zustand anwenden - markt_area (Spalte) == 45.
  5. Geben Sie die Indizes von Elementen zurück, die größer als 90 sind, indem die Bedingung angewendet wird - Market_area (Spalte)> 90.
  6. Geben Sie die Indizes von Elementen zurück, die größer als 90 und gleich 95 sind, indem Sie die Bedingungen anwenden - markt_area (Spalte)> 90 & markt_id (Spalte) == 95.
#create DataFrame für Früchte
Früchte = Daten.Frame (markt_id = c (23,45,67,8,90,123,45,95,789,54), Market_AREA = C (200,456,78,567,89,76,345,678,95,456)))
drucken (Früchte)
#Return Index für Wert beträgt 45 in der Spalte markt_id
Druck (welche (Früchte $ markt_id == 45))
#Return Indizes für Werte mehr als 90 in der Spalte markt_id
Druck (welche (Früchte $ markt_id> 90))
#Return Indizes für Werte von mehr als 90 und gleich 95 in der Spalte markt_id
drucken (was (Früchte $ markt_id> 90 & fruits $ markt_id == 95))
#Return Index für Wert beträgt 45 in der Spalte markt_area
Druck (welche (Früchte $ markt_area == 45))
#Return Indizes für Werte mehr als 90 in der Spalte markt_area
drucken (was (Früchte $ markt_area> 90))
#Return Indizes für Werte von mehr als 90 und gleich 95 in der Spalte markt_area
Druck (welche (Früchte $ markt_area> 90 & Früchte $ markt_area == 95))

Ergebnis

Alle Indizes wurden anhand der Bedingung zurückgegeben. Aber im 5. Zustand gibt es kein Element. Daher kehrte es zu Integer zurück (0).

Match () Funktion

Match () -Funktion wird verwendet, um den Index eines Elements basierend auf dem als ersten Parameter angegebenen Wert zurückzugeben, und der zweite Parameter ist der Objektname. Wenn ein Element nicht gefunden wird, kehrt es zu NA zurück.

Syntax

Übereinstimmung (Element, Objekt)

Wo sich Objekt auf Vektor, Liste und Datenframe bezieht.

Beispiel 1
In diesem Beispiel erstellen wir einen Früchtevektor mit 10 Elementen und überprüfen Sie 45, 90 und 960.

#Create Vector für Früchte
Früchte = C (23,45,67,8,90,123,45,95,789,54)
drucken (Früchte)
#Return Index für Wert beträgt 45
Druck (Match (45, Früchte))
#Return Index für Wert beträgt 90
Druck (Übereinstimmung (90, Früchte))
#Return Index für Wert beträgt 960
Druck (Übereinstimmung (960, Früchte))

Ergebnis

Wir können sehen, dass 45 an der 2. Position erhältlich ist, 90 an der 5. Position erhältlich sind und 960 nicht verfügbar ist. Also kehrte es NA zurück.

Beispiel 2
In diesem Beispiel erstellen wir eine Früchteliste mit 10 Elementen und überprüft 45, 90 und 960.

#create Liste für Früchte
FRUITS = LISTE (23,45,67,8,90,123,45,95,789,54)
#Return Index für Wert beträgt 45
Druck (Match (45, Früchte))
#Return Index für Wert beträgt 90
Druck (Übereinstimmung (90, Früchte))
#Return Index für Wert beträgt 960
Druck (Übereinstimmung (960, Früchte))

Ergebnis

Wir können sehen, dass 45 an der 2. Position erhältlich ist, 90 an der 5. Position erhältlich sind und 960 nicht verfügbar ist. Also kehrte es NA zurück.

Beispiel 3

In diesem Beispiel erstellen wir einen Fruits -Datenfreame mit einer Spalte Market_ID mit 10 Elementen und überprüft in dieser Spalte 45, 90 und 960.

#create DataFrame für Früchte
Früchte = Daten.Rahmen (markt_id = c (23,45,67,8,90,123,45,95,789,54))
drucken (Früchte)
#Return Index für Wert beträgt 45 in der Spalte markt_id
Druck (Übereinstimmung (45, Früchte $ markt_id)))
#Return Index für Wert beträgt 90 in der Spalte markt_id
Druck (Übereinstimmung (90, Früchte $ markt_id)))
#Return Index für den Wert beträgt 960 in der Spalte markt_id
Druck (Übereinstimmung (960, Früchte $ markt_id))

Ergebnis

Wir können sehen, dass 45 an der 2. Position erhältlich ist, 90 an der 5. Position erhältlich sind und 960 nicht verfügbar ist. Also kehrte es NA in der Spalte markt_id zurück.

Abschluss

In diesem R -Tutorial haben wir gesehen. Die () -Funktion gibt den Index/Indizes zurück, indem der Zustand oder den Ausdruck als Parameter genommen wird. Wenn die Bedingung fehlschlägt, kehrt sie zu Integer zurück (0). Während die Funktion match () einen Wert nimmt und den Index zurückgibt, wenn er gefunden wird, wird NA zurückgegeben. Für all diese Funktionen gaben wir die Beispiele auf Vektor, Liste und DataFrame an.