Функция R для возврата порядка отсортированных элементов в неупорядоченном векторе? - PullRequest
0 голосов
/ 12 апреля 2020

Я хотел бы определить индексы элементов несортированного вектора по порядку (например, от низшего к высшему)

Пример

vec <- c(14, 50, 10, 41, 9)
return_indices(vec)
5 3 1 4 2 

Я подозреваю, что был бы простой способ достичь этого, но я не могу думать о том, как

Ответы [ 3 ]

5 голосов
/ 12 апреля 2020

Используйте функцию order

vec <- c(14, 50, 10, 41, 9)
order(vec)
> order(vec)
[1] 5 3 1 4 2
0 голосов
/ 12 апреля 2020

Используйте аргумент sort index.return:

vec <- c(14, 50, 10, 41, 9)
sort(vec, index.return = TRUE)

Индексы отображаются как второй элемент возвращаемого списка.

$x
[1]  9 10 14 41 50
$ix
[1] 5 3 1 4 2
0 голосов
/ 12 апреля 2020

Возможно использование sort и match:

match(sort(vec), vec)
#[1] 5 3 1 4 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...