MISSINGルーチン本章は、データ操作に関するコードサンプルを例示しています。ステップにおける変数の名前と型を明示的に定義します。定義された変数は、DATA文で宣言する出力データセット(_NULL_は除く)のオブザベーションに追加されます。DROPステートメントで指定した変数は追加されません。ステップ中に定義した変数(文字型、数字型)は、各オブザベーションの処理の最初に、それぞれの型ごとに初期化(欠損値)されます。RETAINステートメントで指定した変数は初期化されません。このページの最初へSASでは以下の四則演算子を用いることが出来ます。このページの最初へ比較演算子は変数を値または他の変数と比較します。このページの最初へ文字値を指定したパターンと比較します。このページの最初へSASでは関数を用いて計算を行うことがことが出来ます。関数は欠損値を計算の対象からはずして計算します。文字値を数値に変換する。同様にSAS日付値にも変換する。指定したフォーマットで値を変換。PUT(num1,Z5.);Zw.dフォーマット数値データの前にゼロをつけて出力。(バーティカルバー)を用いて行います。MISSINGルーチンを使用して、複数の変数に欠損値をセットすることができます。問わず、欠損値を判定しますMISSING関数は、欠損値かどうかをチェックして、欠損値であれば1を、そうでなければ0を返します。yyq=YYQ(2008,1);※SASには、SAS日付値とSAS時間値およびSAS日時値という概念があります。日付値は、1960年1月1日を第0日として、1日ごとに1つずつ増えます。このページの最初へ年齢の計算には、INTCK関数を利用すると便利です。INTCK関数は、二つのSAS日付値の間に何回、年(又は月)を越すかを求めるものです。このページの最初へSAS日付を年月の単位で移動させる関数には、INTNX関数があります。INTNX関数は、基準となる日付に対し、以下の構文で指定します。/*1ヵ月後*/ただしINTNX関数は、デフォルトではnヵ月後の月の初日を返します。したがって、nヵ月後の同日日付を求めるには少し工夫が必要になります。hizukeがその月の1日から何日後であるかを求め、daydiffに格納します。2004年11月26日ならば、daydiffは25となります。このページの最初へINPUT関数により、文字値を数値に変換することができます。このページの最初へPUT関数により、数値を文字値に変換することができます。変数varの型を取得*/END;RUN;数値変数の場合はN、文字変数の場合はCを、それぞれ戻り値として返します。このページの最初へDATAステップ変数の値をマクロ変数として作成し格納します。マクロ変数はグローバル変数なので、プログラムのどこからでも参照できます。SYMPUTルーチンはDATAステップの機能です。SYMPUT('TIME',PUT(HOUR(TIME()),Z2.)||":"||PUT(MINUTE(TIME()),Z2.));RUN;※日付と時間をグローバル変数として取得しています。これでいつでも呼び出すことが可能になります。SYMPUTXルーチンで、マクロ変数作成時の前後のブランクを考慮するプログラムを簡素化できるようになっています。このページの最初へ複数の変数に欠損値をセットします。このページの最初へご意見・ご感想をお寄せください。パイプラインニュース。