2

SAS マクロにあるデータ ステップを修正しています。現在、データセット全体の新しいフィールドを作成するために単一の形式が使用されています。データセットのさまざまなサブセットで別の形式が使用される場所に修正しようとしています。(行が属するサブセットを示すフィールドがあります。)

一連の if ステートメントを使用してこれを行うこともできますが、将来カテゴリの数が変更された場合は変更する必要があります。call symput と resolve を使用して目的を達成できると思いますが、その構文がどうなるかはわかりません。if ステートメントに頼らずにこれを達成できますか?

4

1 に答える 1

2

あなたの質問は完全に明確ではありませんが、次のようなことをしたい場合

newvar = put(oldvar,MYFMT.)

->

if x=1 then newvar=put(oldvar,MYFMT.);
else newvar=put(oldvar,MYFMT2.);

ただし、すべての if ステートメントがなくても、PUTNorPUTCを使用できます。これにより、実行時に形式を指定できます。

newvar = putn(oldvar,fmtvar); *optionally can specify w and d as separate arguments also;
于 2013-12-11T16:33:03.213 に答える