rgamma-функция в R: масштаб в виде вектора

Я пытаюсь сделать выборки из гамма-распределения, но я рассматриваю аргумент «масштаб» rgamma как вектор, потому что каждая единица выборки имеет разные параметры масштаба. Я хотел бы знать, каково правило этой функции для выбора значений аргумента. Например, если я запускаю это:

rgamma(10,shape=1,scale=1:10)

Генерирует ли он rgamma(1,shape=1, scale=10),$\ldots$,rgamma(1,shape=1, scale=10)? Кроме того, что, если я запущу это:

rgamma(1,shape=1,scale=1:10)
rgamma(2,shape=1,scale=1:10)
rgamma(11,shape=1,scale=1:3)

Какой параметр шкалы он выбирает для каждого розыгрыша? Может ли кто-нибудь помочь мне? Спасибо


person plb    schedule 12.06.2013    source источник
comment
@Pedro: Используйте sapply: sapply(1:10, FUN=rgamma, shape=1, n=10). В этом случае 1:10 — это значения шкалы, а форма — 1, а $n$ — 10. Получается матрица 10x10, в которой каждый столбец соответствует одному значению scale.   -  person COOLSerdash    schedule 12.06.2013


Ответы (1)


R имеет встроенную векторизацию. Что это означает для ваших первых вопросов, так это то, что rgamma(10, shape=1, scale=c(1:10)) сгенерирует 10 значений, по одному для каждого параметра шкалы.

Когда количество вызовов rgamma не совпадает с длиной вектора, как в rgamma(11, shape=1, scale=c(1:3)), R будет перерабатывать значения масштаба по порядку, пока не будет 11 значений масштаба в форме c(1,2,3,1,2,3,1,2,3,1,2).

person Sycorax    schedule 12.06.2013
comment
... и rgamma(2,shape=1,scale=1:10) будут использовать первые 2 значения параметра scale. - person Stephan Kolassa; 13.06.2013