У меня есть упорядоченный вектор уникальных целых чисел в R, и я хочу найти индекс ближайшего элемента, но меньшего или равного некоторому значению. Например, для вектора 4 8 15 16 23 42
и значения поиска 17
, я хотел бы, чтобы функция возвращала 4
, индекс 16
. В Python я бы использовал модуль bisect. Есть ли что-то подобное в R?Найти индекс значения в отсортированном векторе в R
1
A
ответ
3
Вы можете использовать binsearch
из gtools
пакета, чтобы получить поведение журнала (п) двоичного поиск:
library(gtools)
x <- c(4, 8, 15, 16, 23, 42)
binsearch(function(y) x[y]-17, range=c(1, length(x)))
# $call
# binsearch(fun = function(y) x[y] - 17, range = c(1, length(x)))
#
# $numiter
# [1] 3
#
# $flag
# [1] "Between Elements"
#
# $where
# [1] 4 5
#
# $value
# [1] -1 6
Мы можем увидеть масштабирование сублинейного числа итераций с большим примером:
set.seed(144)
x <- sort(runif(1000000))
binsearch(function(y) x[y]-0.5, range=c(1, length(x)))
# $call
# binsearch(fun = function(y) x[y] - 0.5, range = c(1, length(x)))
#
# $numiter
# [1] 21
#
# $flag
# [1] "Between Elements"
#
# $where
# [1] 500577 500578
#
# $value
# [1] -1.990702e-07 5.827751e-07
Смежные вопросы
- 1. Найти индекс ближайшего в отсортированном векторе
- 2. R: Получение индексы элементов в отсортированном векторе
- 3. Как найти значение в отсортированном векторе (C++)
- 4. Как найти индекс определенного значения в векторе?
- 5. найти индекс элемента в векторе
- 6. Как найти значение в отсортированном векторе C++?
- 7. Как найти нижнюю границу в отсортированном векторе
- 8. найти индекс верхних n элементов в векторе по порядку [R]
- 9. эффективный способ получить индекс в отсортированном векторе в C++
- 10. найти самый низкий индекс заданного значения в предварительно отсортированном массиве
- 11. Найти индекс значения в векторе, ближайший к входу
- 12. Как найти недостающие значения в векторе в языке R?
- 13. Как найти индекс элемента в векторе?
- 14. Найдите позицию в отсортированном векторе, быстро
- 15. Как найти строку в векторе в r?
- 16. Проверка значения в векторе в R
- 17. R, чтобы найти элементы в векторе, что их показатели дозы не существуют в другом векторе
- 18. Matlab поиск точек вставки в отсортированном векторе
- 19. Эффективно найти смежные значения в векторе
- 20. индекс записи в отсортированном отношениях
- 21. Найти элемент в отсортированном массиве
- 22. Найти индекс строки в R
- 23. R: Назовите data.frame после значения в векторе
- 24. R - Некоторые значения не добавлены в векторе?
- 25. найти значения из отсортированного вектора, которые также присутствуют в другом отсортированном векторе
- 26. Найти следующий нижний элемент в отсортированном списке
- 27. Как найти максимальный и минимальный индекс элемента в векторе?
- 28. Найти индекс в отсортированном списке за постоянное время
- 29. Как найти индекс числа в отсортированном массиве со смещением
- 30. Найти частоту истинного значения в векторе
возможно http://stackoverflow.com/questions/20133344/find-closest-value-in-a-vector-with-binary-search – jenesaisquoi
Использование скользящих соединений из пакета data.table, 'data.table (x , key = "x") [. (16), roll = -Inf, which = TRUE] ' – Arun
'findInterval (17, x)' – Khashaa