前のページ|次のページ

FORMATステートメント

変数に出力形式を関連付けます。

該当要素: DATAステップまたはPROCステップ
カテゴリ: 情報
種類: 宣言

構文

引数

variable

1つまたは複数の変数に出力形式を関連付けます。少なくとも1つのvariableを指定する必要があります。

ヒント 変数から出力形式の関連付けを取り消すには、DATAステップまたはPROC DATASETS内で、この変数をFORMATステートメントに出力形式を指定せずに使用します。DATAステップでは、このFORMATステートメントをSETステートメントの後に配置します。 出力形式の取り消しを参照してください。PROC DATASETSも使用することができます。

format

変数の値を出力するときに適用する出力形式を指定します。

ヒント FORMATステートメントを使用して変数に関連付けられた出力形式は、コロン修飾子で使用される出力形式と同じように、後続のPUTステートメントで動作します。コロン修飾子の使用方法の詳細については、 PUTステートメント、リストを参照してください。
参照項目 SAS出力形式と入力形式: リファレンス

DEFAULT=default-format

FORMATステートメントにリストされていない変数の値を表示するときに使用する一時的なデフォルトの出力形式を指定します。このデフォルトの出力形式は、現在のDATAステップにのみ適用されます。出力データセットの変数に常に関連付けられるわけではありません。

DEFAULT= に指定した出力形式の適用対象
  • FORMATステートメントまたはATTRIBステートメントに指定されていない変数
  • SASデータセット内に常に関連付けられてる出力形式がない変数
  • 出力形式を明示的に指定して出力されていない変数
デフォルト DEFAULT=の指定を省略すると、デフォルトの数値の出力形式としてBESTw. を使用し、デフォルトの文字の出力形式として$w. をそれぞれ使用します。
制限事項 このオプションはDATAステップ内でのみ使用できます。
ヒント DEFAULT=は、FORMATステートメントのどの位置に指定してもかまいません。数値に対するデフォルト値、文字に対するデフォルト値、またはその両方を指定できます。
出力形式とデフォルト値を割り当てる

詳細

FORMATステートメントでは、標準のSAS出力形式またはPROC FORMATに定義したユーザー定義の出力形式を使用できます。1つのFORMATステートメントでは、同じ出力形式を複数の変数に関連付けることができます。また、変数ごとに異なる出力形式を関連付けることもできます。同じ変数が複数のFORMATステートメント内に指定されている場合、最後に関連付けられた出力形式が使用されます。
変数に出力形式を常に割り当てるようにするには、DATAステップ内でFORMATステートメントを使用します。ステートメントを使用すると、指定した変数が含まれるSASデータセットのディスクリプタ情報が変更されます。一部のPROCステップでもFORMATステートメントを使用できますが、ルールは異なります。詳細については、Base SASプロシジャガイドを参照してください。

比較

ATTRIBステートメントとFORMATステートメントは、どちらも変数に出力形式を関連付けることができます。また、どちらのステートメントを使用しても変数に関連付けられた出力形式を変更することができます。変数に関連付けられた出力形式の変更や取り消しを行うには、PROC DATASETS内でFORMATステートメントを使用します。ウィンドウ環境から、出力形式と既存のSASデータセット内にある変数の関連付け、変更、関連付けの取り消しを行うこともできます。

例1: 出力形式とデフォルト値を割り当てる

この例では、FORMATステートメントを使用して数値変数と文字変数に出力形式とデフォルトの出力形式を割り当てます。デフォルトの出力形式はデータセット内の変数に関連付けられません。しかし、現在のDATAステップでPUTステートメントを使用して変数を出力するときに、指定した内容が反映されます。
data tstfmt;
   format W $char3.
   Y 10.3
   default=8.2 $char8.;
   W='Good morning.';
   X=12.1;
   Y=13.2;
   Z='Howdy-doody';
   put W/X/Y/Z;
run;
proc contents data=tstfmt;
run;
proc print data=tstfmt;
run;
次の出力結果は、PROC CONTENTSの実行結果の一部とPROC PRINTで生成したレポートを示しています。
PROC CONTENTSの実行結果の一部とPROC PRINTで生成したレポート
PROC CONTENTSの実行結果の一部とPROC PRINTで生成したレポート
PROC PRINTで生成したレポート
PROC PRINTで生成したレポート
デフォルトの出力形式が変数XとZに適用され、指定した出力形式が変数WとYに適用されています。
PUTステートメントの実行結果は次のようになります。
----+----1----+----2
Goo
12.10
13.200
Howdy-do

例2: 1つの出力形式を複数の変数に関連付ける

この例では、FORMATステートメントを使用して1つの出力形式を複数の変数に関連付けます。
data report;
   input Item $ 1–6 Material $ 8–14 Investment 16–22 Profit 24–31;
   format Item Material $upcase9. Investment  Profit  dollar15.2; 
   datalines;
shirts cotton  2256354 83952175
ties   silk    498678  2349615
suits  silk    9482146 69839563
belts  leather 7693    14893
shoes  leather 7936712 22964
;
run;
options pageno=1 nodate ls=80 ps=64;
proc print data=report;
   title 'Profit Summary: Kellam Manufacturing Company';
run;
1つの出力形式を複数の変数に関連付けた後の出力結果
1つの出力形式を複数の変数に関連付けた後の出力結果

例3: 出力形式の取り消し

この例では、SASデータセットにある変数から指定した出力形式の関連付けを取り消します。FORMATステートメントとSETステートメントを指定する順序が重要です。
data rtest;
   set rtest;
   format x;
run;

関連項目:

XisError: No pubcode in link data found for proc
ステートメント:
前のページ|次のページ|ページの先頭へ