多个OR比较

时间:2016-04-12 16:16:45

标签: arrays sas sas-macro

我有一组变量,比如b1-b30,我需要在相同的变量之间测试相同的条件,如果b1 ='a'或b2 ='a'或b3 ='a'..等等上。 SAS宏中是否有任何解决方案或使用sas数组来执行此任务以避免显式写入此问题。 示例代码如下:

data test;
    input d1 d2 d3 d4 d5 ;
cards;
1 2 1 1 0
2 3 1 0 0 
0 0 0 1 0
0 2 1 0 2
0 4 0 2 2
0 0 0 0 3
;
run;

data want;
    set test;
    if d1=1 or d2=1 or d3=1 or d4=1 then flag=1;
    else flag=0;
run;

所以我有大约50个变量,以测试相同的条件并标记它。

1 个答案:

答案 0 :(得分:2)

您可以使用WHICHN()WHICHC()个功能。

flag1 = not 0=whichn(1,of d1-d4);