Есть ли функция R для сортировки фрейма данных на основе ближайшего заданного значения?

avatar
Anusha N
9 августа 2021 в 07:02
64
2
2

Есть ли функция R для сортировки фрейма данных на основе ближайшего заданного значения?

например: x<-c(5,4,9,6,1,4,2,7)

дано value = 4

ожидаемый результат: (4,4,5,6,2,7,1,9)

Источник

Ответы (2)

avatar
ThomasIsCoding
9 августа 2021 в 12:54
1

Еще один базовый вариант R (но я считаю, что ответ @MrFlick более краток)

> as.numeric(names(sort(abs(setNames(x, x) - 4))))
[1] 4 4 5 6 2 1 7 9
avatar
MrFlick
9 августа 2021 в 07:03
4

Вы можете заказать по разнице между x и 4

x <- c(5,4,9,6,1,4,2,7)
x[ order(abs(x-4)) ]
# [1] 4 4 5 6 2 1 7 9