Этот метод не является истинным "случайным" , так как он выбирает только из значений, которые меньше mean(x)
.Дайте мне знать, если это достаточно хорошо для вас -
set.seed(1)
x <- rnorm(8334, 1.456977, 0.3552899)
mean(x)
[1] 1.454307
y <- sample(x, 2000, prob = x <= mean(x)) # x > mean(x) has 0 chance of getting sampled
all(y %in% x)
[1] TRUE
mean(y)
[1] 1.170856
Это практически то же самое, что и -
z <- sample(x[x <= mean(x)], 2000)
all(z %in% x)
[1] TRUE
mean(z)
[1] 1.172033
Кроме того, для значений 2000 самое низкое из возможных mean
это-
mean(sort(x)[1:2000])
[1] 0.9847526
ОБНОВЛЕНИЕ -
Вот один способ получить случайную выборку с обеих сторон mean(x)
, хотя это произвольно, и я не знаю, если этобудет гарантировать выборочное значение меньше чем mean(x)
.-
z <- sample(x, 2000, prob = (x <= mean(x)) + 0.1)
mean(z)
[1] 1.225991
table(z <= mean(x))
FALSE TRUE
202 1798