В R я хотел бы сгенерировать мультиномиально распределенный вектор случайных чисел заданного размера N, например, используя rmultinom
, но с максимальным размером для каждого из K блоков. Например:
set.seed(1)
draw = rmultinom(n = 1, size = 1000, prob = c(67,211,264,166,144,52,2,175))
В этом случае размер равен 1000
, указывая общее количество объектов, которые помещаются в восемь полей (length
из prob
), и prob = c(67,211,264,166,144,52,2,175)
вектор вероятностей для восьми ящиков (который внутренне нормализован до суммы 1). Кроме того, я хотел бы, чтобы c(67,211,264,166,144,52,2,175)
было вектором максимального размера для каждого из восьми блоков.
Однако в этом случае можно сгенерировать числа, превышающие c(67,211,264,166,144,52,2,175)
(для в приведенном выше примере draw[7,]=4
больше, чем 2), тогда как я хотел бы, чтобы каждое число было меньше или равно максимальному размеру каждого поля, указанного в prob
, в дополнение к draw
, суммируя к size = 1000
.
Знаете ли вы какую-нибудь функцию или какой-нибудь простой способ сделать это? Я не нашел ответа.