在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)
Run Code Online (Sandbox Code Playgroud)
注意:效率是绝对必须的,因为我试图将此作为创建Kendall的Tau的O(N log N)实现的基础,以作为补丁提交.我想避免在C中编写我自己的特殊功能来执行此操作,但如果在R内无法有效完成,我愿意这样做.
不确定我理解但是这order()
是你想要的用途:
R> foo <- c(1,3,2, 5,4)
R> bar <- c(2,6,4,10,8)
R> fooind <- order(foo) # index of ordered
R> foo[fooind]
[1] 1 2 3 4 5
R> bar[fooind]
[1] 2 4 6 8 10
R>
Run Code Online (Sandbox Code Playgroud)