1
data test; set A;
  if a1--a21>0 then b=0;
  else b=1;
run;

有谁知道 "a1--a21>0" 是否意味着 a1>0 和 a2>0 和....a21>0 ?如果不是,我该如何表达 a1>0 和 a2>0 和....a21>0?谢谢!

4

2 回答 2

4

一个简单的解决方案是将 MIN 函数与 OF 一起使用,它可以像数组一样跨变量读取。请注意,我已将 a1--a21 更改为 a1-21。这是一个细微的区别,a1--a21 表示使用在 a1 和 a21 之间物理发生的所有变量,而 a1-a21 表示使用变量 a1,a2,a3,...,a21。在大多数表结构中可能是相同的,但在本例中使用单个 - 更安全。
唯一需要注意的是您是否缺少值,我的解决方案不会考虑这些。

data test; set A;
  if min(of a1-a21)>0 then b=0;
  else b=1;
run;
于 2013-09-27T07:50:30.393 回答
0

我不相信你可以做你正在尝试的事情。我总是用数组来做这件事。

data test;
a1 = 1;
a2 = 0;
a3 = 1;
array a[3];
ok = 1;
do i=1 to 3;
    ok = ok and a[i]>0;
end;
if ok then put "YES";
else put "NO";
run;

更改 a2 的值表明这是可行的。

于 2013-09-27T00:55:40.067 回答