在此post中,声明order(order(x))
与rank(X)
相同。
虽然一些实验证实了这一点。
#why is order(order(x)) == rank(x)?
x <- c(0.2, 0.5, 0.1)
x
## [1] 0.2 0.5 0.1
order(x)
## [1] 3 1 2
rank(x)
## [1] 2 3 1
order(order(x))
## [1] 2 3 1
我不明白如何证明这一点,更好的是,凭直觉。
发布于 2016-08-16 16:06:16
首先,看看由1:10的排列形成的整数序列会发生什么:
> set.seed(123); x <- sample(10)
> x
[1] 3 8 4 7 6 1 10 9 2 5
> order(x)
[1] 6 9 1 3 10 5 4 2 8 7
> order(order(x))
[1] 3 8 4 7 6 1 10 9 2 5
> rank(x)
[1] 3 8 4 7 6 1 10 9 2 5
在这种情况下,order
-operation是它自己的反面。由于order
-operation总是返回从1开始的序列,因此order
的任何嵌套奇数应用程序都将返回相同的向量。
Order返回可用于对原始向量进行排序的索引向量。因此,最小项的位置在第一个位置,第二个最小值的位置在下一个位置,...,最后一项是最大项的位置。因此,当您再次对索引向量执行该操作时,第一项现在是最小索引的索引,依此类推……向量的等级。
https://stackoverflow.com/questions/38968911
复制相似问题