【发布时间】:2013-01-03 23:39:17
【问题描述】:
假设给定一个向量 foo,我们必须暂时置换它(排序或重新排序),在它的基础上计算一些向量 bar,最后置换将foo 和bar 都返回到foo 的原始顺序——这意味着逆排列:
foo <- c(1, 7, 3, 5, 2)
o <- order(foo)
foo <- foo[o] # Now foo is permuted, and sorted: foo == 1 2 3 5 7
bar = 2 * foo # bar == 2 4 6 10 14
这里应该是你的答案,这样我们就有了以下期望的最终值:
foo == 1 7 3 5 2
bar == 2 14 6 10 4
如何做到这一点?
请不要回复:“你可以做bar = 2 * foo而不是置换它”。这只是一个简单的例子。在某些情况下,我们必须对foo 进行排序以提高效率(快速搜索它)或类似的东西。
【问题讨论】:
标签: r vector permutation