R 如何将矢量化为“四次嵌套”;至于;环
如何简化以下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) *
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)因为没有图像而关闭了。