FORMATプロシジャスポンサーリンクプロシジャ2020.06.262020.08.18概要:変数に対し独自の入力形式と出力形式を定義します。構文PROC FORMAT <option(s)>; EXCLUDE entry(s); INVALUE <$>name <(informat-option(s))> <value-range-set(s)>; PICTURE name <(format-option(s))> <value-range-set-1 <(picture-1-option(s))>> <value-range-set-2 <(picture-2-option(S))>> ...>; SELECT entry(s); VALUE <$>name <(format-option(s))> <value-range-set(S)>; RUN;ステートメントの説明ステートメント必須解説EXCLUDEカタログエントリをFMTLIBオプションとCNTLOUT=オプションによる処理から除外する。INVALUE生データ値を読み込み、変換するための入力形式を作成する。PICTURE数字を印刷するためのテンプレートを作成する。SELECTFMTLIBオプションとCNTLOUT=オプションによって処理するためのカタログエントリを選択する。VALUE変数値の印刷に使用する文字列を指定する出力形式を作成する。必須ステートメントはありません。例(valueステートメントのみ)データセットproc print data = sashelp.class; run;このデータセットにformatを当ててみます。FORMAT設定proc format; value $sex_fmt 'M'='男' 'F'='女'; value height_fmt low - <60 = ' < 60' 60 - <70 = '60 < 70' other = '70 < '; run;その1formatプロシジャで定義したformatを、formatステートメントで変換しています。data test_1; set sashelp.class; format sex $sex_fmt. height height_fmt.; run;数値型のHeightに文字列が格納されていて変に見えますが、内部では数値型として保持しています。その2formatプロシジャで定義したformatを、put関数内で利用しています。data test_2; set sashelp.class; sex_new = put(sex, $sex_fmt.); height_new = put(height, height_fmt.); run;put関数を利用して再定義すれば文字列型として格納できます。
コメント