#r #optimization #vectorization #sample
#r #оптимизация #векторизация #выборка
Вопрос:
Я пытаюсь выбрать 10 значений либо 0, либо 1, с определенными (но разными) вероятностями каждый раз.
Это не работает:
sample(0:1, size = 10, replace = T, prob = seq(0.1, 1, 0.1))
Это действительно работает:
sapply(seq(0.1, 1, 0.1), function(x) sample(0:1, size = 1, prob = c(1-x, x)))
10-е значение всегда равно 1, в то время как первое значение с вероятностью 1/10 равно 1 — это то, чего я хочу достичь.
Существует ли векторизованный подход?
Ответ №1:
Вы хотите выполнить выборку из биномиального распределения:
rbinom(10, 1, prob = seq(0.1, 1, 0.1))