Jak znaleźć indeks w R

Jak znaleźć indeks w R
W tym samouczku R zobaczymy, jak zwrócić indeks konkretnego elementu w wektorze, liście i w danych danych.

Istnieją dwie funkcje, które są pomocne w znalezieniu wskaźnika szczególności w oparciu o warunek lub wyrażenie.

Omówimy jeden po drugim w każdej strukturze danych.

Która () funkcjonuje

Funkcja która () służy do zwrócenia indeksu elementu na podstawie warunku lub wyrażenia określonego w nim.

Składnia

które (warunek/wyrażenie)

Bierze warunek lub wyrażenie jako parametr.

Możliwe jest również określenie wielu warunków w nim.

Przykład 1

W tym przykładzie tworzymy wektor z 10 elementami numerycznymi i:

  1. Zwróć indeks 45, stosując warunek - Vector_Object == 45.
  2. Zwróć wskaźniki elementów, które są większe niż 90, stosując warunek - Vector_Object> 90.
  3. Zwróć wskaźniki elementów, które są większe niż 90 i równe 95, stosując warunek - Vector_Object> 90 i Vector_Object == 95.
#Wektor przywołania owoców
owoce = C (23 45,67,8,90 123,45,95,789,54)
Drukuj (owoce)
#indeks wartości dla wartości wynosi 45
Drukuj (który (owoce == 45))
#Przewijaj wskaźniki dla wartości większych niż 90
Drukuj (który (owoce> 90))
#Przewijaj wskaźniki dla wartości większych niż 90 i równe 95
Drukuj (który (owoce> 90 i owoce == 95))

Wynik

Dla pierwszego warunku, w 2 i 7 pozycjach, występuje 45.

Dla drugiego warunku, w pozycjach 6, 8 i 9, wartości są większe niż 90. Dla trzeciego warunku, w 8. pozycji, wartość jest większa niż 90 i jest równa 95.

Przykład 2
W tym przykładzie tworzymy listę z 10 elementami numerycznymi i:

  1. Zwróć indeks 45, stosując warunek - List_Object == 45
  2. Zwróć wskaźniki elementów, które są większe niż 90, stosując warunek - List_Object> 90.
  3. Zwróć wskaźniki elementów, które są większe niż 90 i równe 95, stosując warunki - List_Object> 90 i List_Object == 95.
#Create List dla owoców
Owoce = lista (23 45,67,8,90 123,45,95,789,54)
#indeks wartości dla wartości wynosi 45
Drukuj (który (owoce == 45))
#Przewijaj wskaźniki dla wartości większych niż 90
Drukuj (który (owoce> 90))
#Przewijaj wskaźniki dla wartości większych niż 90 i równe 95
Drukuj (który (owoce> 90 i owoce == 95))

Wynik

Dla pierwszego warunku, w 2 i 7 pozycjach, występuje 45.

Dla drugiego warunku, w pozycjach 6, 8 i 9, wartości są większe niż 90. Dla trzeciego warunku, w 8. pozycji, wartość jest większa niż 90 i równa 95.

Przykład 3
W tym przykładzie tworzymy ramkę danych z 10 elementami numerycznymi w obu kolumnach i:

  1. Zwróć indeks 45, stosując warunek - Market_id (kolumna) == 45.
  2. Zwróć wskaźniki elementów, które są większe niż 90, stosując warunek - Market_id (kolumna)> 90.
  3. Zwróć wskaźniki elementów, które są większe niż 90 i równe 95, stosując warunki - Market_id (kolumna)> 90 i Market_ID (kolumna) == 95.
  4. Zwróć indeks 45, stosując warunek - Market_area (kolumna) == 45.
  5. Zwróć wskaźniki elementów, które są większe niż 90, stosując warunek - Market_area (kolumna)> 90.
  6. Zwróć wskaźniki elementów, które są większe niż 90 i równe 95, stosując warunki - Market_area (kolumna)> 90 i Market_ID (kolumna) == 95.
#Utwórz ramkę danych dla owoców
owoce = dane.Ramka (Market_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))
Drukuj (owoce)
#indeks wartości dla wartości to 45 w kolumnie Market_id
Drukuj (który (owoce $ market_id == 45))
#Return Wskaźniki dla wartości większych niż 90 w kolumnie Market_id
Drukuj (który (owoce $ market_id> 90))
#Return Wskaźniki dla wartości większych niż 90 i równe 95 w kolumnie Market_id
Drukuj (który (owoce $ market_id> 90 i owoce $ market_id == 95))
#indeks wartości dla wartości wynosi 45 w kolumnie Market_area
Drukuj (który (owoce $ market_area == 45))
#Return Wskaźniki dla wartości większych niż 90 w kolumnie Market_area
Drukuj (który (owoce $ Market_area> 90))
#Return Wskaźniki dla wartości większych niż 90 i równe 95 w kolumnie Market_area
Drukuj (który (owoce $ Market_area> 90 i owoce $ Market_area == 95))

Wynik

Wszystkie wskaźniki zostały zwrócone na podstawie stanu. Ale w piątym stanie nie ma żadnego elementu. Stąd powrócił do liczby całkowitej (0).

Funkcja match ()

Match () funkcja służy do zwrócenia indeksu elementu na podstawie wartości określonej jako pierwszy parametr, a drugi parametr to nazwa obiektu. Jeśli element nie zostanie znaleziony, powróci do Na.

Składnia

dopasowanie (element, obiekt)

Gdzie obiekt odnosi się do wektora, listy i ramki danych.

Przykład 1
W tym przykładzie tworzymy wektor owoców z 10 elementami i sprawdzamy 45, 90 i 960.

#Wektor przywołania owoców
owoce = C (23 45,67,8,90 123,45,95,789,54)
Drukuj (owoce)
#indeks wartości dla wartości wynosi 45
Drukuj (mecz (45, owoce))
#indeks wartości dla wartości wynosi 90
Drukuj (dopasowanie (90, owoce))
#indeks wartości dla wartości to 960
Drukuj (dopasowanie (960, owoce))

Wynik

Widzimy, że 45 jest dostępnych na drugiej pozycji, 90 jest dostępne na 5. pozycji, a 960 nie jest dostępne. Więc wrócił na.

Przykład 2
W tym przykładzie tworzymy listę owoców z 10 elementami i sprawdzamy 45, 90 i 960.

#Create List dla owoców
Owoce = lista (23 45,67,8,90 123,45,95,789,54)
#indeks wartości dla wartości wynosi 45
Drukuj (mecz (45, owoce))
#indeks wartości dla wartości wynosi 90
Drukuj (dopasowanie (90, owoce))
#indeks wartości dla wartości to 960
Drukuj (dopasowanie (960, owoce))

Wynik

Widzimy, że 45 jest dostępnych na drugiej pozycji, 90 jest dostępne na 5. pozycji, a 960 nie jest dostępne. Więc wrócił na.

Przykład 3

W tym przykładzie tworzymy Fruits DataFrame, który ma kolumnę Market_ID z 10 elementami i sprawdzając 45, 90 i 960 w tej kolumnie.

#Utwórz ramkę danych dla owoców
owoce = dane.Ramka (Market_id = C (23 45,67,8,90,123,45,95,789,54)))
Drukuj (owoce)
#indeks wartości dla wartości to 45 w kolumnie Market_id
Drukuj (mecz (45, owoce $ market_id))
#indeks wartości dla wartości to 90 w kolumnie Market_id
Drukuj (dopasowanie (90, owoce $ market_id))
#indeks wartości dla wartości to 960 w kolumnie Market_id
Drukuj (dopasowanie (960, owoce $ market_id))

Wynik

Widzimy, że 45 jest dostępnych na drugiej pozycji, 90 jest dostępne na 5. pozycji, a 960 nie jest dostępne. Więc zwrócił NA w kolumnie Market_id.

Wniosek

W tym samouczku R widzieliśmy, jak zwrócić indeks za pomocą funkcji WHO () i Match (). Która funkcja () zwraca indeks/wskaźniki, przyjmując warunek lub wyrażenie jako parametr. Jeśli warunek się nie powiedzie, wówczas powraca do liczby całkowitej (0). Podczas gdy funkcja match () ma wartość i zwraca indeks, jeśli zostanie znaleziony, w przeciwnym razie Na zwrócenie. W przypadku wszystkich tych funkcji podaliśmy przykłady wektora, listy i danych danych.