私は次のRコードを持っています:
pp = function(N,J,K){
for(i in 1:100){
pai=runif(J)
alpha=matrix(rbinom(N*K,1,0.5),nrow=N)
Q=matrix(rbinom(J*K,1,0.5),nrow=J)
r=matrix(runif(J*K),nrow=J)
ta=r^Q
arrayalpha=array(rep((1-alpha), J),c(N,K,J))
arrayta=array(rep(ta, N),c(J,K,N))
arraytap=aperm(arrayta, c(3,2,1))
tare=arraytap^arrayalpha #ta^re
arrayprod=apply(tare,c(1,3),prod)
repai=t(matrix(rep(pai,N),nrow=J))
predarray=t(arrayprod*repai)
}
predarray
}
> system.time(pp(500,20,5))
user system elapsed
5.381 0.008 12.468
より効率的にするにはどうすればよいですか?ご協力ありがとうございました。