Pytanie jak zdobyć indeks posortowanych elementów tablicy


Powiedz, że mam tablicę w R: 10 7 4 3 8 2 Przy sortowaniu będzie to: 2 3 4 7 8 10

Jaki jest najlepszy sposób w R, aby zwrócić indeksy posortowanych elementów tablicy z oryginalnej tablicy. Szukam wyjścia, takiego jak: 6 (wskaźnik 2), 4 (wskaźnik 3), 3 (wskaźnik 4), 2 (wskaźnik 7), 5 (wskaźnik 8), 1 (wskaźnik 10)


11
2017-11-25 07:41


pochodzenie




Odpowiedzi:


Funkcja, której szukasz, jest order:

> x
[1] 10  7  4  3  8  2
> order(x)
[1] 6 4 3 2 5 1

16
2017-11-25 07:42



Dzięki za super szybką odpowiedź :) - IAMTubby


sort ma index.return Argument, który domyślnie jest FALSE

x <- c(10,7,4,3,8,2)
sort(x, index.return=TRUE) #returns a list with `sorted values` 
#and `$ix` as index.
#$x
#[1]  2  3  4  7  8 10

#$ix
#[1] 6 4 3 2 5 1

Możesz wyodrębnić index przez

sort(x, index.return=TRUE)$ix
#[1] 6 4 3 2 5 1

10
2017-11-25 07:57