SASプログラミングステートメント、データ行、またはその両方を現在のSASプログラムに読み込みます。
該当要素: | 任意の場所 |
カテゴリ: | プログラム制御 |
別名: | %INC |
参照項目: | %INCLUDEステートメントXisError: No pubcode in link data found for hostwin、XisError: No pubcode in link data found for hostunx、およびXisError: No pubcode in link data found for hosto390 |
%INCLUDEステートメントでアクセスする情報の格納場所を指定します。ソースとして次の3つが考えられます。
ソース
|
定義
|
|
---|---|---|
file-specification
|
外部ファイルを指定します。
|
|
internal-lines
|
同一のSASジョブまたはSASセッションで入力した行を指定します。
|
|
keyboard-entry
|
キーボードから直接入力するステートメントまたはデータ行を指定します。
|
プログラムに読み込む外部ファイルを指定します。
一重引用符で囲んだ外部ファイルの物理名を指定します。物理名には動作環境でファイルを判別できる名前を指定します。
外部ファイルに関連付けられているファイル参照名を指定します。
ヒント | FILENAMEステートメント、FILENAME関数、または動作環境のコマンドを使用すると、ファイル参照名の関連付けを行うことができます。 |
集約記憶域に関連付けられているファイル参照名を指定します。ファイル参照名の後ろに、指定した場所に存在するファイル名を1つまたは複数指定します。また、各ファイルはカンマまたはブランクで区切ります。次に指定したファイル名全体を丸かっこで囲みます。
mylib
に格納されています。testcode1およびtestcode2の拡張子はデフォルトの.SASなので、ファイル拡張子を指定する必要はありません。testcode3.txtは、.SAS以外の拡張子なので、指定するファイル名を引用符で囲む必要があります。
%include mylib(testcode1, testcode2, "testcode3.txt");
動作環境 | 動作環境によって、ディレクトリ、MACLIB、区分データセットなど複数のファイルをまとめて保存する場所の名前は異なります。 複数のファイルを格納する記憶域のファイルにアクセスする方法については、各動作環境向けのSASドキュメントを参照してください。. |
注 | 集約記憶域に格納されているファイルの名前が有効なSAS名ではない場合は、その名前を引用符で囲む必要があります。 |
ヒント | FILENAMEステートメント、FILENAME関数、または動作環境のコマンドを使用すると、ファイル参照名の関連付けを行うことができます。 |
制限事項 | 外部ファイルから特定の行だけを読み込むことはできません。 |
動作環境 | ファイル名に使用できる文字列の長さは動作環境によって異なります。外部ファイルの物理名を指定する方法の詳細については、各動作環境向けのSASドキュメントを参照してください。 |
ヒント | ERRORCHECKオプションがSTRICTに設定されている場合、SYSERRマクロ変数を使用すると、file-specificationの指定の有無を確認できます。 |
バッチモード、ウィンドウ環境、対話型ラインモード、非対話型モードなど、どの種類のSAS処理でも、外部ファイルを指定すると便利です。 |
同一のSASジョブまたはSASセッションで入力した行を指定します。
n | 行nを読み込みます。 |
n-mまたはn:m | 行nからmを読み込みます。 |
注 | 対話型ラインモード、非対話型モード、バッチモードを実行している場合は、SPOOLシステムオプションによってサブミット済みの行への内部アクセスが制御されます。デフォルトでは、SPOOLシステムオプションはNOSPOOLに設定されます。%%INCLUDEステートメントを使用して入力済みの行を参照するには、SPOOLシステムオプションを有効にする必要があります。システム上でのSPOOLシステムオプションの現在の設定を確認するには、OPTIONSプロシジャを使用します。 |
ヒント | 入力済みの行の読み込みは、対話型ラインモードの処理で使用すると便利です。 |
読み込む行番号を指定するには、%LISTステートメントを使用します。 | |
SASをウィンドウ環境で実行しているときは%INCLUDEステートメントを使用してサブミット済みの行にアクセスできますが、プログラムエディタでRECALLコマンドを使用して行を再表示し、それをSUBMITコマンドで再度サブミットするほうが簡単です。 |
プログラムを待機させる方法の1つです。この方法を使用すると、現在の実行中のプログラムの処理を中断し、キーボードからステートメントやデータ行を入力した後、プログラムの処理を再開できます。
キーボードからデータを入力するように求めるプロンプトを表示します。コード内で%INCLUDEステートメントの後ろにアスタリスク(*)を指定します。
proc print; %include *; run;
制限事項 | Microsoft Windows動作環境で拡張エディタを使用する場合、アスタリスク(*)を使用してキーボード入力を指定することはできません。 |
注 | FILENAMEステートメント、FILENAME関数、または動作環境のコマンドを使用して、ファイル参照名SASTERMを事前に外部ファイルに関連付けておく必要があります。 |
ヒント | SASを非対話型モードまたは対話型ラインモードで実行する場合は、この方法を使用します。SASは処理を停止し、キーボードからステートメントを入力するように求めるプロンプトを表示します。 |
キーボードからソースを読み込むにはこの引数を指定します。 | |
%INCLUDE * ステートメントをバッチジョブでも使用できます。その場合、キーボードから入力するかわりに、ステートメントが含まれるファイルを作成して、ファイル参照名SASTERMを関連付けます。%%INCLUDE * ステートメントを実行すると、SASTERMを割り当てたファイルからステートメントを読み込みます。SASTERMを割り当てたファイルでは、元のソースから読み込みを再開する位置に%RUNステートメントを追加します。 |
SASプログラムに読み込むソースステートメントをSASログに表示します。
ヒント | SASログには、ファイル参照名、ソースのファイル名、ネストレベル(1、2、3など)も表示されます。 |
SOURCE2システムオプションでも、結果は同じになります。%INCLUDEステートメントにSOURCE2を指定すると、読み込み処理中は、SOURCE2システムオプションの設定より優先されます。 |
入力に使用するレコード長を指定します。lengthには、次の値を指定できます。
S | S2の値をS=SASシステムオプションの現在の設定と同じ値に設定します。 |
0 | SEQ=システムオプションの設定に従って、行にシーケンスフィールドが含まれているかどうかを判断するようにします。行にシーケンスフィールドが含まれている場合、合計の長さからシーケンスフィールドを除いた長さを行の長さと判断します。 |
n | ファイルに固定長レコードが含まれている場合、読み込む行の長さに対応する1以上の値を指定します。ファイルに可変長レコードが含まれている場合、データの読み込みを開始する列を位置をnに指定します。 |
操作 | S2=システムオプションでは、%INCLUDEステートメントでアクセスするセカンダリソースステートメントの長さも指定します。この値は、SASセッション実行中は有効です。%%INCLUDEに指定したS2=オプションは、現在の読み込み処理でのみ有効です。%%INCLUDEステートメントにS2=オプションを指定すると、読み込み処理中は、システムオプションの設定より優先されます。 |
ヒント | %INCLUDEステートメントから読み込むテキストは、固定長または可変長のどちらかになります。 |
固定長レコードは、シーケンスフィールドなしレコードか、またはレコードの末尾にシーケンスフィールドを有するレコードです。固定長レコードの場合、S2=オプションに指定した値は、データの末尾の列位置を示します。 | |
可変長レコードは、シーケンスフィールドなしレコードか、またはレコードの先頭にシーケンスフィールドを有するレコードです。固定長レコードの場合、S2=オプションに指定した値は、データの先頭の列位置を示します。 | |
参照項目 | 固定長入力レコードおよび可変長入力レコードの詳細については、 XisError: No pubcode in link data found for lesysoptsrefおよびXisError: No pubcode in link data found for lesysoptsrefを参照してください。 |
動作環境 | 動作環境によっては、%INCLUDEステートメントでさまざまなオプションがサポートされます。オプションとその機能の一覧については、各動作環境向けのドキュメントを参照してください。 |
data monthly; input x y month $; datalines; 1 1 January 2 2 February 3 3 March 4 4 April ;
%include 'MYFILE'; proc print; run;
filename in1 'MYFILE';
%inc in1;
filename storage
'aggregate-storage-location';
%inc storage(MYFILE);
%inc storage(file-1,file-2,file-3);
%inc storage("file-1.txt","file-2.dat", "file-3.cat");
%include 1 5 9-12 13:16;
data report;
infile file-specification;
input month $ salesamt $;
run;
proc print;
%include *;
run;
where month= 'January'; title 'Data for month of January';
%run;
filename dir catalog 'mylib.include'; %include dir(mem1); %include dir(mem2); %include dir(mem3);