我在 R 方面没有太多经验。我正在尝试编写一个 Gibbs 采样器,其中我有一个这样的 for 循环:
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
,但这也不够快。有没有办法向量化这个循环?
感谢你并致以真诚的问候!!