我正在尝试创建一个变量,当该变量达到某个数字时(当过程有所改进时,该变量将标记为“ 1”)。然后,我尝试重置基准,以便必须重新标记基准(阈值)。数据集仅以一个变量(x)开始。我从第一个观察中创建了另一个基线,称为“基线”,因此我将所有其他“ x”与基线进行比较。达到阈值后,我想将基线更改为刚刚达到的阈值。
这是代码的相关部分(请注意,我已经创建了确定程序较早基准的代码)。
data combo;
set combo;
if (baseline-x)/8 >1 then do;
flag=1;
baseline=x;
end;
else
flag=0;
run;
这是输出的相关部分。
我期望第三次观察的标志为1(它是)(因为基线从259开始,然后按我希望的那样移动到251。但是为什么标志flag = 1之后呢?未达到阈值有人可以帮忙吗?
我认为您需要在如下情况下添加另一个括号。我在这里跑步,所有标志都变为零。
if ((baseline-x)/8) >1 then
do;
flag=1;
baseline=x;
end;
else
flag=0;
run;