基本的なデータステップでは、新しい変数を作成しています。この新しい変数に基づいてデータセットをフィルタリングする必要があります。新しく計算された変数のデータステップをフィルタリングすることは可能ですか?
data want;
set have;
newVariable = 'aaa';
*lots of computations that change newVariable ;
*if xxx then newVariable = 'bbb';
*if yyy AND not zzz then newVariable = 'ccc';
*etc.;
where newVariable ne 'aaa';
run;
ERROR: Variable newVariable is not on file WORK.have.
私は通常2つの段階でこれを行うが、良い方法がある場合、私は思ったんだけど。
(もちろん、あなたは常にWORK.have
に存在する変数に基づいて、複雑なwhere statement
を書くことができます。しかし、この場合にnewVariable
の計算は、それはあまりにも複雑だし、第二data step
でフィルタを行うには、より効率的である)
私はこれについての情報を見つけることができませんでした、私は答えがドキュメントにあると私はそれを見つけることができなかったばかな質問についてお詫び申し上げます。必要に応じて質問を削除します。
ありがとうございます!一般的に
if newVariable ne 'aaa';
、if <condition>;
がif not(<condition>) then delete;
と同等です:
シンプルで機能的です。ありがとう! –
WHEREが失敗したときにこれがなぜ機能するのか注目する価値があります。 'WHERE'節はコンパイル時に見られ、入力レコードのストリームに適用されます。 IFはコンパイルされたステートメントであり、コードと共にインラインで適用されます。 – DomPazz