Quel est le moyen le plus efficace pour trier deux vecteurs dans lockstep dans R? Le premier vecteur doit être trié par ordre croissant et le second doit être réorganisé de façon à ce que les éléments ayant des indices correspondants avant le tri aient encore des index correspondants après le tri. Par exemple:Le moyen le plus efficace pour trier deux vecteurs dans lockstep dans R?
foo <- c(1,3,2, 5,4)
bar <- c(2,6,4,10,8)
sort2(foo, bar)
# foo == c(1,2,3,4, 5)
# bar == c(2,4,6,8,10)
Note: L'efficacité est un must absolu ici que je suis en train d'utiliser comme base pour la création d'un O (N log N) mise en œuvre de Tau de Kendall à présenter comme un patch. Je voudrais éviter d'écrire ma propre fonction spéciale en C pour le faire, mais je serais prêt à le faire si cela ne peut pas être fait efficacement dans R.
Merci. Ce n'est pas ** le moyen le plus efficace (une indirection supplémentaire est impliquée), mais c'est certainement assez bon. – dsimcha
Ceci est le moyen le plus efficace. R ne modifie pas les objets en place - et si vous regardez le code source de 'sort.default', vous verrez qu'il utilise' order() 'en interne. – hadley