快速和三重总和

时间:2014-03-19 10:52:47

标签: r sum nested-loops sapply

我为

的表达编写了一段代码
sum(l(from 1 to n))
       sum(i(from 1 to m))
           sum(t(from 1 to m)
              (phil(i)*phil(t)*[I(X(l)<min(y(i),y(t))-z(i)z(t)]

像这样:

set.seed(1234567)    
z1<-runif(50,min=0,max=1);m=length(z1)    
z2<-z1;m=length(z1)
x<-rnorm(60);n=length(x)
y<-rnorm(50)*0.25
phil_z1_1<-sqrt(12*(z1/z1))
# using the sapply such that 
sum(sapply(1:n, function(l) {sum(sapply(1:m, function(i){sum(sapply(1:m,function(t){phil_z1_1[i]*phil_z1_1[t]*(x[l]<=min(y(i),y(t))-z[i]*z[t])}))}))

不幸的是,这不起作用,因为我在运行后无法获得任何结果

我有类似的东西,

sum1<-sum(sapply(1:m, function(t){sum(sapply(1:m, function(i){sum(sapply(1:n,function(l){phil_z1_1[i]*phil_z1_1[t]*(x[l]<=min(y(i),y(t))-z[i]*z[t])}))}))
+

我不明白符号“+”是什么意思

任何人都可以帮助我吗

提前致谢!!!

1 个答案:

答案 0 :(得分:3)

如果我正确理解您的公式,您需要首先确定表达式l,i,t的{​​{1}}大于或等于min(y[i],y[t])-z[i]*z[t],然后求和 x[l]超过那些侮辱。奇怪的是,后面的表达式中没有phil_z1_1[i]*phil_z1_1[t]

这是一种方式,但它可能不是最有效的方法:

l

请注意,我重命名了一些变量,因此这可能不是您想要的。