rbeta

时间:2016-08-02 15:10:45

标签: r

我想在rbeta中同时使用不同参数值的向量,并得到一个长度为n向量元素之和的向量。例如,

n <- c(10, 20, 30)
alpha <- c(1,2,3)
beta <- c(3,2,1)
rbeta(n, alpha, beta)

底线并不符合我的意愿。我希望输出是一个长度为10 + 20 + 30 = 60的向量,前10个元素是来自beta(1,3)的10个样本,接下来的20个元素来自beta(2,2)和下一个来自beta(3,1)的30个元素。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

通常,在将函数应用于向量元素时,您需要<img src="https://source.unsplash.com/random" style="vertical-align:middle; width:100%; height:100%;"> 超过输入向量:

lapply

但是,在您的情况下,您只需unlist(lapply(n, rbeta, 2, 1) 所有sum s:

n

如果您有rbeta(sum(n), 2, 1) alpha的多个参数,则可以使用Map代替(小心,与beta相比,参数被反转):

lapply

答案 1 :(得分:1)

对于您修改过的问题,我认为明智地使用rep()会使其发挥作用。

n <- c(10, 20, 30)
alpha <- c(1,2,3)
beta <- c(3,2,1)
rbeta(sum(n),rep(alpha,n),rep(beta,n))