Смоделируйте случайную биномиальную последовательность за n повторений в R

Мне нравится рисовать nrep раз из биномиального распределения с тета-параметром, чтобы создать одну последовательность длины k для каждой тета и построить их в матричном измерении nrep x k. Как создать матрицу результатов в R?

Приведенный ниже код рисует (nrep * k) каждый из разных тета, т.е. последовательность не имеет длины k из одной и той же тета. [Моя цель — нарисовать nrep, умноженное на биномиальную вероятность тета-длины k.]

### simulate some binary sequence data in matrix ted (1000 x 20)
nrep <- 1000
s <- 7; k <- 20
theta <- rbeta(nrep, shape1=s+1, shape2=k-s+1)

ted <- 0
ted <- matrix(rbinom(k * nrep, 1, theta), ncol = k, nrow = nrep)
hist(ted)

person rrg    schedule 04.04.2016    source источник


Ответы (1)


rbinom векторизован по параметру prob, поэтому вы можете использовать rep(theta, k) для достижения

ted <- matrix(rbinom(k * nrep, 1, rep(theta, k)), ncol = k, nrow = nrep)
person Julius Vainora    schedule 04.04.2016
comment
это отличное решение - person rrg; 04.04.2016
comment
@rrg, вы все еще ищете более эффективное или какое-то другое решение? В противном случае было бы уместно принять ответ и, возможно, проголосовать за него. - person Julius Vainora; 05.04.2016