R 如何将矢量化为“四次嵌套”;至于;环

R 如何将矢量化为“四次嵌套”;至于;环,r,loops,nested,R,Loops,Nested,如何简化以下r代码。。因为这需要很多时间 I1 <- 0 m <- 10 for (k1 in 0:m) { for (k2 in 0:m) { for (s1 in 0:m) { for (s2 in 0:m) { I1 <- I1 + C.n(c((k1)/m,(k2)/m),uc) * C.n(c((s1)/m,(s2)/m),uc) *

如何简化以下r代码。。因为这需要很多时间

   I1 <- 0
   m <- 10
    for (k1 in 0:m) {
      for (k2 in 0:m) {
        for (s1 in 0:m) {
          for (s2 in 0:m) {
            I1 <- I1 + C.n(c((k1)/m,(k2)/m),uc) *
              C.n(c((s1)/m,(s2)/m),uc) *
              choose(m,k1) * choose(m,k2) *
              choose(m,s1) * choose(m,s2) *
              beta((k1) + (s1) + 1, 2*m-(k1)-(s1) + 1) *
              beta((k2) + (s2) + 1, 2*m-(k2)-(s2) + 1)
          }
        }
      }
    }

I1从我的第一条评论中,您可能会满足于:


I1从我的第一条评论中,您可能会满足于:


I1(1)预计算
在其各自的
中立即选择(m,k1)
(和
,k2
),对于
循环,不要在内部循环中每次都重新计算它们。(2) 类似地,在
s1
循环内立即预计算
beta((k1)…)
。(3) 我们不知道C.n的功能是什么;如果它是一个3小时的函数,你在其他地方做什么都不会有帮助。如果你与我们分享
C.n
,我们可能会给出更好的建议。如果你可以访问多个内核/工作线程,你可以并行化内部循环(或挤压几层并并行化)。。。我们可以要一份吗?再看看…@BenBolker,这是一篇好文章,我喜欢它。。。太糟糕了,源站点(noamross.net)没有图像。(1)预先计算
立即在各自的
中选择(m,k1)
(和
,k2
)对于
循环,不要在内部循环中每次都重新计算它们。(2) 类似地,在
s1
循环内立即预计算
beta((k1)…)
。(3) 我们不知道C.n的功能是什么;如果它是一个3小时的函数,你在其他地方做什么都不会有帮助。如果你与我们分享
C.n
,我们可能会给出更好的建议。如果你可以访问多个内核/工作线程,你可以并行化内部循环(或挤压几层并并行化)。。。我们可以要一份吗?再看看…@BenBolker,这是一篇好文章,我喜欢它。。。太糟糕了,源站点(noamross.net)因为没有图像而关闭了。