什么是在R中同时对两个向量进行最有效排序的方法?第一个向量应按升序排序,第二个向量应重新排序,以便具有相应索引的元素在排序前后仍具有相应索引。例如:
注意:在这里效率绝对是必须的,因为我正试图将其用作创建Kendall's Tau的O(N log N)实现的基础来提交补丁。我希望避免编写自己的特殊C函数来完成此任务,但如果无法在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)
注意:在这里效率绝对是必须的,因为我正试图将其用作创建Kendall's Tau的O(N log N)实现的基础来提交补丁。我希望避免编写自己的特殊C函数来完成此任务,但如果无法在R中高效地完成,则愿意这样做。
sort.default
的源代码,你会发现它在内部使用了order()
函数。 - hadley