前のページ|次のページ

LISTステートメント

現在処理中のオブザベーションの入力データレコードをSASログに書き込みます。

該当要素: DATAステップ
カテゴリ: アクション
種類: 実行

構文

LIST;

引数なし

LISTステートメントを使用すると、現在処理中のオブザベーションの入力データレコードをSASログに書き込めます。

詳細

LISTステートメントは、INPUTステートメントで読み込まれるデータのみを処理します。SET、MERGE、MODIFY、UPDATEの各ステートメントで読み込まれるデータは処理されません。
SASログでは、列の位置を示すルーラーが表示してから、レコードを表示します。
可変長レコード(RECFM=V)の場合、入力行の最後にレコード長を書き込みます。固定長レコード(RECFM=F)の長さは、読み込むデータ量がレコード長(LRECL)と一致している場合には書き込みません。

比較

次の表で、LISTステートメントとPUTステートメントを比較します。
アクション
LISTステートメント
PUTステートメント
書き込みのタイミング
DATAステップの繰り返しの最後に実行
すぐに実行
書き込み内容
入力した内容と同一の入力データレコード
指定した変数またはリテラル
書き込み先
SASログのみ
SASログ、SAS出力先、外部ファイル
処理可能なステートメント
INPUTステートメントのみ
すべてのデータ読み込みステートメント
16進数の値の処理
書き込みできない文字が検出された場合は自動的に値を16進数で出力する
16進数の出力形式が指定された場合にのみ文字を16進数で表示する

例1: 欠損データを含むレコードをリストする

この例では、LISTステートメントを使用して、欠損データが含まれる入力レコードをSASログに書き込みます。INPUTステートメントの行ポインタコントロールが#3と指定されているため、1つのオブザベーションを作成するのに3つのレコードを読み込みます。そのため、W2AMTの値が欠損しているたびに、現在の入力レコードが3行にわたってSASログに書き込まれます。
data employee;
   input ssn 1-9 #3 w2amt 1-6;
   if w2amt=. then list;
   datalines;
23456789
JAMES SMITH
356.79
345671234
Jeffrey Thomas
.
;
欠損データを表示するログ
RULE:----+----1----+----2----+----3----+----4----+----5----+---- 9   345671234 10  Jeffrey Thomas 11  .
番号9、10、と11はSASログ内の行番号を示しています。

例2: 可変長レコードのレコード長を表示する

この例では、可変長ID番号を含むの外部ファイルを入力として使用します。RECFM=VオプションはINFILEステートメントで指定され、LISTステートメントはSASログにレコードを書き出します。この例のRECFM=Vオプションが示すように、ファイルが可変長のレコードを持つ場合、SASログにリストされる各レコードの最後にレコード長が書き込まれます。
data employee;
   infile 'your-external-file' recfm=v;
   input id $;
   list;
run;
可変長レコードどレコード長を表示するログ
RULE:     ----+----1----+----2----+----3----+----4----+----5--- 1         23456789 8 2         123456789 9 3         5555555555 10 4         345671234 9 5         2345678910 10 6         2345678 7

関連項目:

ステートメント:
前のページ|次のページ|ページの先頭へ