【发布时间】:2013-09-11 05:41:27
【问题描述】:
您好,我正在尝试通过矢量化来加速以下 for 循环的计算,即使用 sapply() 等。
但由于结构非常复杂,这似乎是一项不可能完成的任务。我已经尝试了几天,但最终没有解决方案。
有人可以看看如何加快以下功能吗?
alpha2f <- function(p0,t2,n1,n2){
alpha2=0
for (x1 in 12:n1){
for (x2 in 0:n2){
for (y2 in 0:n2){
a=dbinom(x1,n1,p0)
b=dbinom(x2,n2,p0)
alpha2=alpha2+a*b*dbinom(y2,n2,p0)*ifelse(ztest(x1+x2,y2,n1+n2,n2)>t2,1,0)
}}}
return(alpha2)
}
【问题讨论】:
-
这样的问题应该描述代码试图做什么,以及需要改进的尝试。
-
我尝试复制/粘贴您的函数,但得到了
Error in ifelse(ztest(x1 + x2, y2, n1 + n2, n2) > t2, 1, 0) : could not find function "ztest"。如果我们没有工作示例或至少描述该函数的作用,则很难提供帮助。
标签: r for-loop vector matrix sapply