我有一个矩阵A
,其中包含我的beta分布的alpha参数,A^2
包含beta参数。我想得到一个矩阵C
,其中包含来自beta分布的模拟,其中C [i,j]是Beta(A[i,j], A[i,j]^2)
等的模拟。
我已经尝试了rbeta(1,A,A^2)
,但这仅为第一个元素提供了模拟。
所以我创建了函数
Beta<-function(x){
rbeta(1, x, x^2)
}
然后使用apply函数,就像这样
C<-apply(A,c(1,2), Beta)
哪个有效。唯一的问题是A是100 x 100000
,我的计算机很难计算C
。有谁知道更快的方式来执行这样的任务?
答案 0 :(得分:0)
您可以使用一个命令创建整个矩阵。您在此处不需要apply
。
C <- matrix(rbeta(length(A), A, A^2), dim(A))
虽然我没有测试它,但速度要快得多。