Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops SAS上特定组合的迭代_Loops_Iteration - Fatal编程技术网

Loops SAS上特定组合的迭代

Loops SAS上特定组合的迭代,loops,iteration,Loops,Iteration,下表列出了每个变量“A”、“B”和“C”的每种可能性,以及该组合发生的概率。我已经知道所有的可能性了 Row # | A | B | C | Probability ============================================================ 0 | ... | ... | ... | P0 -------------------------------------

下表列出了每个变量“A”、“B”和“C”的每种可能性,以及该组合发生的概率。我已经知道所有的可能性了

  Row #  |   A  |   B   |   C     |     Probability 
============================================================ 
    0    |  ...  |  ...  |   ...   |        P0
------------------------------------------------------------ 
    1    |  ...  |  ...  |   ...   |        P1
------------------------------------------------------------ 
    .    |  ...  |   .   |   .     |        .
------------------------------------------------------------ 
    .    |  ...  |   .   |   .     |        .
------------------------------------------------------------ 
    10   |  ...  |  ...  |   ...   |        P10 
------------------------------------------------------------
我想在变量“a”、“B”和“C”的组合中编写一个迭代:

start from Row = 0, keep increasing 
for Row = i. 
    If P(Row >= i) * 300 - P(Row < i) * 600 > 0 
        do 
            i = i+1; 
        until P(Row >= i) * 300 - P(Row < i) * 600 <= 0 or i =10. 
从行开始=0,继续增加
对于Row=i。
如果P(行>=i)*300-P(行0
做
i=i+1;
直到P(行>=i)*300-P(行0,因此,i=0+1=1

当i=1时,p(行>=1)*300-p(行<1)*600=0.95*300-0.05*600=255>0 i=1+1=2

当i=2时,p(计数>=2)*300-p(行<2)*600=0.85*300-0.15*600=165>0 i=2+1=3

当i=3时,p(行>=3)*300-p(行<3)*600=0.70*300-0.30*600=30>0 i=3+1=4

当i=4时,p(行>=4)*300-p(行<4)*600=0.50*300-0.50*600=-150<0

对于“A”、“B”和“C”的组合,我们停止并输出i=4


谢谢大家!

观察到
p(Row>=i)*300-p(Row0
p(Row>=i)>2*p(Row
相同,我们简单地求和
p(Row@MooingDuck我编辑了我的问题,谢谢!我需要的是I(计数的数量)对于“A”、“B”和“C”的每一个组合,这在我的问题中被视为阈值。在SAS上是否还有这样做的方法?
P(Row>=i)*300-P(Row0
P(Row>=i)>2*P(Row
相同。谢谢!我现在知道了逻辑,然后将转换到SAS
double sum = 0;
auto it = data.begin();
while(it != data.end() && *it > 2*sum) {
    sum += *it;
    ++it;
}