我没有太多的经验,在R.我想写一个Gibbs采样在那里我有一个循环是这样的:如何向量化这个循环中的R
for (iNum in 1:totNum) {
rateNum <- Y3[iNum]
if(Y3[iNum] > 0) {
yStar3[iNum] <- rtnorm(1, mean = Mean3[iNum], sd = sqrt(Var3),
lower = gz[rateNum], upper = gz[rateNum + 1])
} else if(Y3[iNum] == 0) {
yStar3[iNum] <- rtnorm(1, mean = Mean3[iNum], sd = sqrt(Var3),
lower = -Inf, upper = Inf);
}
}
这是服用过多的时间。我试图使用lapply
,但这还不够快。有没有一种方法来实现这个循环的矢量化?
谢谢你,最好的问候!
我会说是的,因为'rtnorm'被矢量,但你似乎对每个值使用不同的截断值(上,下),而且我认为这个参数没有被矢量化。 – joran 2013-02-21 19:54:26