Dans R, j'ai un élément xet un vecteur v. Je veux trouver le premier index d'un élément vqui 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 xc'est un vecteur? Autrement dit, il devrait retourner un vecteur d'indices indiquant la position de chaque élément de xin 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 quematchetPositionpeuvent ne pas renvoyer autant de données quewhich, mais elles ne sont pas nécessairement plus efficaces.