Dans R, j'ai un élément x
et un vecteur v
. Je veux trouver le premier index d'un élément v
qui est égal à x
. Je sais qu'une façon de procéder est:, which(x == v)[[1]]
mais cela semble excessivement inefficace. Existe-t-il un moyen plus direct de le faire?
Pour les points bonus, existe-t-il une fonction qui fonctionne si x
c'est un vecteur? Autrement dit, il devrait retourner un vecteur d'indices indiquant la position de chaque élément de x
in v
.
which(x == v)[[1]]
non.
which(x == v)[[1]]
n'est pas très inefficace. C'est un==
opérateur de comparaison ( ) appliqué à tous les éléments vectoriels et un sous-ensemble sur les indices (which
). C'est tout. Rien de pertinent, tant que vous n'exécutez pas 10 000 répétitions sur cette fonction. D'autres solutions telles quematch
etPosition
peuvent ne pas renvoyer autant de données quewhich
, mais elles ne sont pas nécessairement plus efficaces.