Ответ 1
Функция, которую вы ищете, это order
:
> x
[1] 10 7 4 3 8 2
> order(x)
[1] 6 4 3 2 5 1
Скажем, у меня есть массив в R: c(10, 7, 4, 3, 8, 2)
После сортировки это будет: c(2, 3, 4, 7, 8, 10)
Каков наилучший способ в R вернуть индексы для отсортированных элементов массива из исходного массива. Я ищу вывод, как: 6 (индекс 2), 4 (индекс 3), 3 (индекс 4), 2 (индекс 7), 5 (индекс 8), 1 (индекс 10)
Функция, которую вы ищете, это order
:
> x
[1] 10 7 4 3 8 2
> order(x)
[1] 6 4 3 2 5 1
sort
имеет аргумент index.return
, который по умолчанию равен 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
Вы можете извлечь index
на
sort(x, index.return=TRUE)$ix
#[1] 6 4 3 2 5 1