我在 R 中有以下向量:
> A<-c(8.1915935, 3.0138083, 0.3245712, 10.7353747, 13.7505131 ,63.2337407, 16.7505131, 5.7781297)
我想對它進行排序,同時,知道每個元素在排序向量中的位置。所以我使用以下功能:
sort(A, index.return=T)
我得到以下輸出,我不太明白:
$x
[1] 0.3245712 3.0138083 5.7781297 8.1915935 10.7353747 13.7505131 16.7505131 63.2337407
$ix
[1] 3 2 8 1 4 5 7 6
查看原始向量A,第一個元素位于已排序向量的第 4 個位置。所以“$ix”的第一個元素應該是4,為什么是3?
那么,向量的最大數是A的第 6 個。但是 $ix 的第 6 個元素不是 8,正如我期望看到的(向量的長度)而是 6。為什么?
依此類推,對于所有元素。顯然,我對這個輸出有些不理解。
uj5u.com熱心網友回復:
$ix表示元素x在原始向量中的位置;您希望相反 - 中原始向量中元素的位置x。區別在于order()和rank()
> order(A)
[1] 3 2 8 1 4 5 7 6
> rank(A)
[1] 4 2 1 5 6 8 7 3
請注意order(order(A)) == rank(A),因此獲得您正在尋找的答案的一種方法是
result <- sort(A, index.return = TRUE)
order(result$ix)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/379975.html
