In R, ho un elemento x
e un vettore v
. Voglio trovare il primo indice di un elemento in v
uguale a x
. So che un modo per farlo è: which(x == v)[[1]]
, ma sembra eccessivamente inefficiente. C'è un modo più diretto per farlo?Esiste una funzione R per trovare l'indice di un elemento in un vettore?
Per i punti bonus, c'è una funzione che funziona se x
è un vettore? Vale a dire, dovrebbe restituire un vettore di indici che indica la posizione di ciascun elemento di x
in v
.
Poiché R è ottimizzato per lavorare con i vettori, 'which (x == v) [[1]]' non è molto inefficiente. È un operatore di confronto ('==') applicato a tutti gli elementi del vettore e un sottoinsieme sugli indici ('which'). Questo è tutto. Nulla che dovrebbe essere rilevante, purché non si eseguano 10.000 ripetizioni su questa funzione. Altre soluzioni come 'match' e' Position' potrebbero non restituire tanti dati quanti 'which', ma non sono necessariamente più efficienti. – BurninLeo
La mia domanda specifica che preferirei una funzione che è stata vettorizzata su x e 'which (x == v) [[1]]' non lo è. –