【发布时间】:2018-02-22 23:28:34
【问题描述】:
我想根据 if 语句按组 (i) 更新我的四个变量(Z1、Z2、IVtmp$differror1、IVtmp$differror2)。
foreach(i=unique(IVtmp$scidx)) %dopar% {
numerator=sum(P1new[IVtmp$scidx==i])+sum(P2new[DATA$scid==i])
denominator=sum(P1old[IVtmp$scidx==i])+sum(P2old[DATA$scid==i])
probab=exp(numerator-denominator)
if (runif(1)<probab){
Z1[DATA$scid==i]=e1new[DATA$scid==i]
Z2[DATA$scid==i]=e2new[DATA$scid==i]
IVtmp$differror1[IVtmp$scidx==i]=differror1new[IVtmp$scidx==i]
IVtmp$differror2[IVtmp$scidx==i]=differror2new[IVtmp$scidx==i]
change=change+1
} else{
Z1[DATA$scid==i]=e1old[DATA$scid==i]
Z2[DATA$scid==i]=e2old[DATA$scid==i]
IVtmp$differror1[IVtmp$scidx==i]=differror1old[IVtmp$scidx==i]
IVtmp$differror2[IVtmp$scidx==i]=differror2old[IVtmp$scidx==i]
}
}
但似乎我无法在 foreah 循环中执行 if 语句。有人可以帮忙吗?
谢谢
【问题讨论】:
-
谢谢史蒂夫。那么,我应该在代码中添加什么?
标签: r if-statement parallel-processing parallel-foreach