Я думаю, что неправильно понял вопрос ранее. Нам нужно проверить, находится ли какое-либо значение в векторе между другими значениями в другом векторе.
get_difference_values <- function(x, y) {
if(any(dplyr::between(x, min(y), max(y))))
c(0, max(max(x) - min(y), max(y) - min(x)))
else
range(abs(outer(x, y, `-`)))
}
rho1 <- range(0.90,0.92)
rho2 <- range(0.91,0.93)
get_difference_values(rho1, rho2)
#[1] 0.00 0.03
rho1 <- range(0.85,0.88)
rho2 <- range(0.89,0.91)
get_difference_values(rho1, rho2)
#[1] 0.01 0.06
Старый ответ
В воспроизводимом примере я думаю, что вам нужно seq
, а не range
.
Мы можем использовать outer
, чтобы получить разницу между каждым элементом rho1
, rho2
, получить их абсолютное значение и получить range
.
rho1 <- seq(0.90,0.92, 0.01)
rho2 <- seq(0.91,0.93, 0.01)
range(abs(outer(rho1, rho2, `-`)))
#[1] 0.00 0.03
rho1 <- seq(0.85,0.88, 0.01)
rho2 <- seq(0.89,0.91, 0.01)
range(abs(outer(rho1, rho2, `-`)))
#[1] 0.01 0.06