优化四个嵌套for循环

时间:2017-04-10 12:00:38

标签: r for-loop nested

我有四个嵌套的for循环。我该如何优化呢?我实现了以下代码,但这需要很长时间。

p1=0.1
q1=0.3
p2=0.2
q2=0.4
n=10
r1=2
bincoeff=function(k,S1, R2, S2) {
 return ( factorial(k+S1+R2+S2)/(factorial(k)*factorial(S1)*factorial(R2)*factorial(S2)) )
}
out=0
applyFormula= function(n, r1, p1, q1, p2, q2){
 if (r1 < 0) {out <- 0} 
else{
for (k in 0:r1) {
  nmk= n-k
   for (S1 in 0:nmk) {
     for (R2 in 0:nmk) {
       for (S2 in 0:nmk) {
         if ( S1+R2+S2 == nmk ) {
          out = out+ (bincoeff(k,S1,R2,S2)*(p1^k)*(q1^S1)*(p2^R2)*(q2^S2))
         }
       }
     }
   }
  }
   return (out)
  }
 }

我已将此功能应用于我的大数据的每一行,因此需要几分钟...... 您可以提供给我的所有帮助表示赞赏。谢谢!

0 个答案:

没有答案