前のページ|次のページ

INFORMATステートメント

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

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

構文

引数

variable

1つまたは複数の変数に関連付ける入力形式を指定します。informatを指定する場合、または他の引数を指定しない場合は、少なくともvariableを1つ指定する必要があります。入力形式としてDEFAULT=を使用する場合、変数の指定は任意です。

ヒント 変数から入力形式の関連付けを取り消すには、この変数をINFORMATステートメントに入力形式を指定せずに使用します。SETステートメントの後にINFORMATステートメントを指定します。入力形式の取り消しを参照してください。

入力形式

INFORMATステートメントにリストされている変数の値を読み込むときに使用する入力形式を指定します。

ヒント 入力形式がINFORMATステートメントを使用して変数に関連付けられ、INPUTステートメントにて同じ変数に同じ入力形式が関連付けられていない場合、この入力形式はINPUTステートメントにコロン(:)修飾子付きで指定された入力形式と同じように動作します。変数は、入力形式を使いリスト入力経由で読み込まれます。たとえば、コロン修飾子を入力形式とともに使用すると、8バイトよりも長い文字の値や非標準の値を含む数値を読み込むことができます。詳細については、 INPUTステートメント、リストを参照してください。
参照項目 SAS出力形式と入力形式: リファレンス
数値および文字の入力形式を指定する

DEFAULT= default-informat

INFORMATステートメントにリストされている変数の値を読み込むときに使用する一時的なデフォルトの入力形式を指定します。variableを指定しない場合、DATAステップにあるすべての変数の読み込みに使用する一時的なデフォルトの入力形式として、DEFAULT=に指定した入力形式が適用されます。数値変数には数値の入力形式が適用され、文字変数には文字の入力形式が適用されます。このデフォルト入力形式は、現在のDATAステップにのみ適用されます。

DEFAULT=に指定した入力形式の適用対象
  • INFORMATまたはATTRIBステートメントに指定されていない変数
  • SASデータセット内で入力形式が恒久的に関連付けられていない変数
  • 現在のDATAステップにおいて、明示的に指定した入力形式を使用して読み込まれない変数
デフォルト DEFAULT=の指定を省略すると、デフォルトの数値の入力形式としてw.dが使用され、デフォルトの文字の入力形式として$w.が使用されます。
制限事項 この引数はDATAステップのみで使用します。
ヒント DEFAULT=は、INFORMATステートメントのどの位置に指定してもかまいません。数値に対するデフォルト値、文字に対するデフォルト値、またはその両方を指定できます。
デフォルトの入力形式を指定する

詳細

基本

DATAステップ内のINFORMATステートメントは、変数に入力形式を恒久的に割り当てます。標準のSAS入力形式またはPROC FORMATで定義したユーザー定義の入力形式を指定できます。1つのINFORMATステートメントにて、同じ入力形式を複数の変数に関連付けることや、異なる入力形式を複数の変数に関連付けることができます。同じ変数が複数のINFORMATステートメントに指定されている場合、最後に割り当てられた入力形式が使用されます。
注意:
INFORMATステートメントは事前に定義されていない文字変数の長さを定義するため、SETステートメントの前に使用すると、DATAステップ内の文字変数の値を切り捨てることができます。

INFORMATステートメントで入力形式を割り当てた場合の変数の処理

INFORMATステートメントを使用して変数に入力形式を割り当てると、修飾リスト入力で使用される入力形式と同じように動作します。変数はリスト入力の走査機能を使用して読み込まれますが、入力形式が適用されます。修飾リスト入力では、SASは次の処理を行います。
  • 入力形式のwの値を使用して、外部ファイルの列位置や入力フィールド幅を設定しない
  • 入力形式のwの値を使用して、事前に定義されていない文字変数の長さを設定する
  • 数値の入力形式のwの値は無視する
  • 入力形式のdの値を、数値入力形式の場合と同じように使用する
  • 入力データに埋め込まれているブランクは、INFILEステートメントのDLM=オプションまたはDLMSTR=オプションを変更しない限り、区切り文字として処理する
フォーマット入力やカラム入力などの別の入力スタイルを使用するようにINPUTステートメントをコード化した場合、INFORMATオプションの使用時にはその入力スタイルは使用されません。

比較

  • ATTRIBステートメントとINFORMATステートメントは、どちらも変数に入力形式を関連付けることができます。また、どちらのステートメントを使用しても変数に関連付けられた入力形式を変更することができます。また、変数に関連付けられた入力形式の変更や取り消しを行うには、PROC DATASETS内でINFORMATステートメントを使用します。SASウィンドウ環境を使用すると、既存のSASデータセット内にある変数と入力形式の関連付け、変更、関連付けの取り消しを行うことができます。
  • ステートメントを使用すると、指定した変数が含まれるSASデータセットのディスクリプタ情報が変更されます。一部のPROCステップでもINFORMATステートメントを使用できますが、ルールは異なります。詳細については、XisError: No pubcode in link data found for procを参照してください。

例1: デフォルトの入力形式を指定する

この例では、INFORMATステートメントを使用してデフォルトの数値入力形式を関連付けます。
data tstinfmt;
   informat default=3.1;
   input x;
   put x;
   datalines;
111
222
333
;
PUTステートメントの実行結果は次のようになります。
11.1
22.2
33.3

例2: 数値および文字の入力形式を指定する

この例では、SAS変数に文字の入力形式と数値の入力形式を関連付けます。文字変数は列位置15まですべて占めるものではありませんが、INPUTステートメントは修飾リスト入力を使用してデータレコードを正しく読み込みます。
data name;
   informat FirstName LastName $15. n1 6.2 n2 7.3;
   input firstname lastname n1 n2;
   datalines;
Alexander Robinson 35 11
;
proc contents data=name;
run;
proc print data=name;
run;
次の出力結果は、PROC CONTENTSの実行結果の一部とPROC PRINTで生成したレポートを示しています。
SAS変数への数値および文字の入力形式の関連付け
SAS変数への数値および文字の入力形式の関連付け
PROC PRINTで生成したレポート
PROC PRINTで生成したレポート

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

この例では既存の入力形式の関連付けを取り消します。INFORMATステートメントとSETステートメントを指定する順序が重要です。
data rtest;
   set rtest;
   informat x;
run;

関連項目:

前のページ|次のページ|ページの先頭へ