Возможно, решение состоит в том, чтобы установить quantile
аргумент type
в значение, отличное от значения по умолчанию type = 7
.
n <- 3
q5 <- quantile(V, probs = seq(0, 1, length.out = n + 1), type = 5)
q6 <- quantile(V, probs = seq(0, 1, length.out = n + 1), type = 6)
q8 <- quantile(V, probs = seq(0, 1, length.out = n + 1), type = 8)
q9 <- quantile(V, probs = seq(0, 1, length.out = n + 1), type = 9)
И разделить входной вектор:
split(V, findInterval(V, q5))
split(V, findInterval(V, q6))
split(V, findInterval(V, q8))
split(V, findInterval(V, q9))
Приведенные выше инструкции split
дают одинаковые результаты. См. ниже.
Значения 5, 6, 8 и 9 были найдены с помощью следующего кода:
sapply(1:9, function(i)
quantile(V, probs = seq(0, 1, length.out = n + 1), type = i)
)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#0% 1 1 1 1 1.000000 1.000000 1 1.000000 1.000000
#33.33333% 2 2 2 2 2.000000 2.000000 2 2.000000 2.000000
#66.66667% 2 2 2 2 2.166667 2.333333 2 2.222222 2.208333
#100% 5 5 5 5 5.000000 5.000000 5 5.000000 5.000000
Поскольку столбцы 5, 6, 8 и 9 имеют квантили 2/3
, отличные от 2
эти типы могут быть выбраны для решения вопроса.
Квантили 2/3
находятся между 2 и 3, поэтому инструкции split
выводят один и тот же список.