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

「a1--a21>0」が a1>0 および a2>0 and....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 に答える