R: векторизованная выборка, при которой вероятность меняется при каждой выборке

#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))