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