变量为何具有特定值的麻烦

问题描述 投票:0回答:1

我正在尝试创建一个变量,当该变量达到某个数字时(当过程有所改进时,该变量将标记为“ 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之后呢?未达到阈值有人可以帮忙吗?enter image description here

if-statement sas flags
1个回答
0
投票

我认为您需要在如下情况下添加另一个括号。我在这里跑步,所有标志都变为零。

  if ((baseline-x)/8) >1 then 
        do;
           flag=1;
           baseline=x;
        end;
        else 
        flag=0;
    run;
© www.soinside.com 2019 - 2024. All rights reserved.