Я знаю, что это общий вопрос, но общий ответ r[order(unlist(r))]
не работает из-за цифровых клавиш. Я не могу найти ответы через некоторое время поиска. Я видел Как я могу получить верхние n значений с индексом в R? , но он использует фрейм данных, и я не знаю, как внедрить фрейм данных в мою функцию.
У меня есть список значений, которые я создал, используя r [[i]] <- <code>value в цикле. Теперь я хочу отсортировать этот список, но сохранить цифровую клавишу.
> r
[[1]]
[1] 4396750
[[2]]
[1] 6340260
[[3]]
[1] 8449058
[[4]]
[1] 5676146
> r <- r[order(unlist(r))]
> r
[[1]]
[1] 4396750
[[2]]
[1] 5676146
[[3]]
[1] 6340260
[[4]]
[1] 8449058
Мне нужен какой-то способ сохранить ключи, чтобы я знал, что значения, от самого низкого до самого высокого, представлены ключами 1,4,2,3
. Тогда мне нужно будет сохранить ключи с самыми низкими 3 значениями. Поэтому мой конечный результат должен быть каким-то списком или вектором, который дает мне 1,4,2
.
Мой пример упрощен, поэтому некоторые ярлыки, такие как «просто отбрось максимальное значение», не сработают.
Фактический код для функции здесь:
knnacc <- function(e){
dist = list()
for(j in 1:10000) {
dist[[j]] <- distance(TEST[["image"]][[e]], TRAIN[["image"]][[j]])
}
#dist <- dist[order(unlist(dist))]
return(dist)
}
Я бы хотел достичь точки, в которой функция возвращает 20 клавиш, связанных с наименьшим расстоянием из 60 000.