Trova l'indice di un elemento in un vettore R
-
Usa la funzione
which()
per trovare l’indice di un elemento in R -
Usa la funzione
match()
per trovare l’indice di un elemento in R
Un vettore è una delle strutture dati fondamentali in R. Viene utilizzato per memorizzare elementi in una sequenza, ma a differenza degli liste, tutti gli elementi in un vettore devono essere dello stesso tipo di dati.
Ogni elemento nel vettore ha una posizione o un indice particolare. È possibile conoscere l’indice di qualsiasi elemento utilizzando funzioni incorporate in R come which()
e match()
.
In questo tutorial, troveremo l’indice dell’elemento 7
e 8
del seguente vettore:
x <- c(5,6,8,9,7,5,7,8)
Usa la funzione which()
per trovare l’indice di un elemento in R
La funzione which()
restituisce un vettore con l’indice (o gli indici) dell’elemento che corrisponde al vettore logico (in questo caso ==
).
Per esempio:
x <- c(5,6,8,9,7,5,7,8)
which(x == 7)
[1] 5 7
Si noti che poiché 7
è presente due volte nel vettore, vengono restituite entrambe le sue posizioni. Se vogliamo il primo indice di 7
, possiamo semplicemente farlo come mostrato di seguito:
which(x == 7)[1]
[1] 5
Possiamo anche usare la funzione which()
per trovare gli indici di più elementi usando il parametro %in%
, che restituisce un vettore con un valore True
per ogni elemento che corrisponde.
which(x %in% c(7,8))
[1] 3 5 7 8
Come puoi vedere, vengono restituite tutte le posizioni di 7
e 8
.
Usa la funzione match()
per trovare l’indice di un elemento in R
La funzione match()
è molto simile alla funzione which()
. Restituisce un vettore con il primo indice (se l’elemento è in più di una posizione come nel nostro caso) dell’elemento ed è considerato più veloce della funzione which()
.
x <- c(5,6,8,9,7,5,7,8)
match(7,x)
[1] 5
Possiamo anche usarlo per trovare il primo indice di più elementi, come mostrato di seguito:
x <- c(5,6,8,9,7,5,7,8)
match(c(7,8),x)
[1] 5 3
Nota che solo le prime posizioni di 7
e 8
vengono restituite dalla funzione match()
. Questo è il motivo per cui match()
è considerato più veloce dei due metodi per situazioni in cui è richiesto solo il primo indice.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn