ユーザ定義フォーマットの観測値に新しい値を定義しようとしています。しかし、私のif/then/elseステートメントは、年値 "2014"の観測値に対してのみ機能するようです。 putステートメントは他の値では機能しません。 SASでは、putステートメントは最初のステートメントでは青で、他のステートメントでは黒です。ここで私が言いたいの絵です:ユーザ定義フォーマットのput関数を使用して条件付きで新しいフィールドを定義する
誰もが私がここで行方不明です何を知っていますか?
あなたが見ることができるように、以下は
data claims_t03_group;
set output.claims_t02_group;
if year = "2014" then test = put(compress(lookup,"_"),$G_14_PROD35.);
else if year = "2015" then test = put(compress(lookup,"_"),$G_15_PROD35.);
else test = put(compress(lookup,"_"),$G_16_PROD35.);
run;
私はプロセスが「仕事」2014年らしいことを言うとき、私が何を意味するかの例です。ここに私の完全なコードです年の値は2014で、フォーマットの検索は正しく機能し、テストフィールドは私が期待している値を返します。ただし、2015年と2016年の間、テストフィールドはフォーマットを行わずにルックアップ値を返します。
'それは上記のように、コードかどうPUT'は青色であってはならない - それはとにかく、鉱山ではありません。まだ青色であることを確認できますか?もしそうなら、あなたはコードを適切に転記していないか、あるいはあなたのコードの中で他の問題を以前に持っています(このデータステップだけをとり、新しいウィンドウを入れてみてください)。 – Joe
明確にするために、それが '文'の場合は青色で、 '関数'の場合は黒色です。 'put'は両方のものなので、それを理解するのは構文パーサに任されています。もしあなたが青色であれば 'statement'を使っていると思います。つまり' test = '部分はおそらく見えません。 – Joe
最後に、「働く」という意味を説明する必要があります。あなたは2014年の値を取得しますが、他の2つの値は取得しません。あるいは、3年間で2014形式の価値が得られますか?作成されたデータを使ってここにいくつかの例を入れることは非常に役に立ちます - いくつかのフォーマット(VALUEステートメントを使用することができます)といくつかの行の例を作り、それを質問に編集してください。 – Joe