【发布时间】:2014-10-15 20:41:31
【问题描述】:
我对 SAS 中的 do 循环非常陌生,我知道我正在尝试让这个循环像 MATLAB 脚本一样工作。我没有在网上找到很多有用的提示,因为大多数 do-loop 示例只是用于计算,而不是实际检查当前行之前的行是否具有相同的值。
这是我需要解决的问题:
我想看看下面的每一个保单编号,看看之前的是否相同,如果是,我要标记它。
Policy
26X0118907
26X0375309
26X0375309
26X0527509
我认为i=1 是第一个策略(26X0118907),i=2 是第二个策略(26X0375309)。
在这种情况下,根据代码(不起作用),这个增量将被标记为“B”。你知道如何正确编码这样的情况吗?
data AF_Inforce_&thestate.;
set AF_Inforce_&thestate.;
by Rating_St;
if first.Rating_St then counter=0;
counter+1;
myloop:
do i=2 to counter;
P2(i)=Policy(i);
P1(i)=Policy(i-1);
if P1(i)=P2(i) then flag='A';
else flag='B';
end;
return;
run;
【问题讨论】:
标签: if-statement sas do-loops