前のページ|次のページ

DATAステートメント

DATAステップを開始します。また、出力データセット、ビュー、プログラムの名前を指定します。

該当要素: DATAステップ
カテゴリ: ファイル操作
種類: 宣言

構文

形式1:

形式2:

形式3:

DATA view-name <data-set-name-1 <(data-set-options-1)> >
<...data-set-name-n <(data-set-options-n)> > /
VIEW=view-name <(<password-option> <SOURCE=source-option> )>
<NESTING> <NOLIST>;

形式4:

形式5:

DATA VIEW=view-name <(password-option)> <NOLIST>;
DESCRIBE;

形式6:

DATA PGM=program-name <(password-option)> <NOLIST>;
<DESCRIBE;>
<REDIRECT INPUT | OUTPUT old-name-1 = new-name-1<… old-name-n = new-name-n> ;>
<EXECUTE;>

引数なし

引数の指定を省略すると、作成される一連のデータセットには、DATAnという名前が自動的に指定されます。nには、名前が重複しないように最小の整数が使用されます。

引数

data-set-name

DATAステップで作成するSASデータファイルまたはDATAステップビューの名前を指定します。DATAステップビューを作成するには、data-set-nameを少なくとも1つ指定する必要があります。また、data-set-nameview-nameに一致させる必要があります。

制限事項 data-set-nameはSASの命名規則に準拠する必要があります。また、動作環境によっては、その他の制限事項が適用される場合があります。
ヒント データセット名を使用するかわりに、オペレーティングシステムでサポートされている構文を使用してファイルの物理パス名を指定することができます。物理パス名は一重引用符または二重引用符で囲む必要があります。
SASデータセットを作成せずに、DATAステップを実行することもできます。カスタムレポートの作成を参照してください。詳細については、データセットを作成しない場合(形式2) を参照してください。
参照項目 SASデータセット名の種類および各種類の用途については、XisError: No pubcode in link data found for lrconを参照してください。

(data-set-options)

DATAステップでオブザベーションを出力データセットに書き込むときに適用する引数を指定します。この引数はオプションです。

参照項目 SASデータセットオプション: リファレンス には、データセットオプションの定義や一覧が記載されています。
複数データファイルの作成とデータセットオプションの使用

/ DEBUG

論理エラーやデータエラーを特定しながら、対話的にプログラムのデバッグを行うことができます。

/ NESTING

DO-ENDおよびSELECT-ENDの各ネストレベルの開始と終了に関するメッセージをSASログに出力できます。このオプションを指定すると、一致していないDO-ENDステートメントおよびSELECT-ENDステートメントをデバッグすることができます。また、ネストレベルがわかりにくい大規模なプログラムに使用すると便利です。

/ STACK=stack-size

ネストするLINKステートメントの最大数を指定します。

_NULL_

DATAステップの実行時にデータセットを作成しないように指定します。

VIEW=view-name

DATAステップで入力DATAステップビューの格納に使用するビューの名前を指定します。

制限事項 view-nameは、複数のデータセット名のうちの1つと一致している必要があります。
1つのDATAステップで作成できるビューは1つだけです。
ヒント DATAステートメントに追加データセットを指定する場合、後続のDATAステップまたはPROCステップでビューが処理されるときに追加データセットが作成されます。ビューには、ビューの実行時に他のデータセットを生成する機能があります。
ビューの作成時、SASマクロ変数が解決されます。マクロ変数の解決をビューの処理時まで延期する場合は、SYMGET関数を使用します。
入力DATAステップビューの作成

ビューおよびデータファイルの作成

password-option

コンパイル済みDATAステッププログラムまたはDATAステップビューにパスワードを割り当てます。

注: パスワードで保護されたDATAステッププログラムを表示するには、パスワードを指定する必要があります。プログラムが複数のパスワードを持っている場合、一番厳格なパスワードを指定します。ALTERは一番厳格で、READは最も制限が緩いものです。詳細については、DESCRIBEステートメントを参照してください。
次のパスワードオプションを指定できます。

ALTER=alter-password

SASデータファイルにALTERパスワードを割り当てます。このパスワードを使用すると、コンパイル済みDATAステッププログラムまたはDATAステップビューの保護や置き換えが行えます。

別名 PROTECT=
要件 コンパイル済みDATAステッププログラムやDATAステップビューの作成時にALTERパスワードを使用した場合、そのプログラムやビューを置き換えるにはALTERパスワードが必要となります。
コンパイル済みDATAステッププログラムやDATAステップビューの作成時にALTERパスワードを使用した場合、DESCRIBEステートメントを実行するにはALTERパスワードが必要となります。

READ=read-password

SASデータファイルにREADパスワードを割り当てます。このパスワードを使用すると、コンパイル済みDATAステッププログラムまたはDATAステップビューの読み取りや実行を行えます。

別名 EXECUTE=
要件 コンパイル済みDATAステッププログラムやDATAステップビューの作成時にREADパスワードを使用した場合、そのプログラムやビューを実行するにはREADパスワードが必要となります。
コンパイル済みDATAステッププログラムやDATAステップビューの作成時にREADパスワードを使用する場合、DESCRIBEステートメントおよびEXECUTEステートメントを実行するにはREADパスワードが必要です。無効なパスワードを指定すると、DESCRIBEステートメントだけが実行されます。
ヒント コンパイル済みDATAステッププログラムやDATAステップビューの作成時にREADパスワードを使用する場合、プログラムやビューの置き換えにはパスワードは不要です。

PW=password

READパスワードとALTERパスワードを割り当てます。両方のパスワードに同じ値を使用します。

SOURCE=source-option

次のソースオプションから1つ指定します。

SAVE

コンパイル済みDATAステッププログラムやDATAステップビューを作成したソースコードを保存します。

ENCRYPT

コンパイル済みDATAステッププログラムやDATAステップビューを作成したソースコードを暗号化して保存します。

ヒント ソースコードを暗号化する場合は、ALTERパスワードオプションも使用する必要があります。ALTERパスワードを使用しないと、警告メッセージが表示されます。

NOSAVE

ソースコードは保存されません。

注意:
DATAステップビューにNOSAVEオプションを使用する場合、このビューをSASのあるバージョンから別のバージョンにコピーすることはできません。
デフォルト SAVE

PGM=program-name

DATAステップで作成または実行するコンパイル済みプログラムの名前を指定します。コンパイル済みプログラムを作成する場合は、PGM=オプションの前にスラッシュ(/)を指定します。コンパイル済みプログラムを実行する場合は、スラッシュ(/)をつけずにPGM=オプションを指定します。

ヒント ストアドプログラムの作成時、SASマクロ変数の解決が行われます。マクロ変数の解決をビューの処理時まで延期する場合は、SYMGET関数を使用します。
コンパイル済みプログラムの保存と実行

NOLIST

_ERROR_の値が1の場合、すべての変数をSASログに出力しないようにします。

制限事項 NOLISTはDATAステートメントの最後のオプションとして指定する必要があります。

詳細

DATAステートメントの使用

DATAステートメントを使用すると、DATAステップが開始されます。DATAステートメントを使用すると、SASデータセット、データビュー、ストアドプログラムのような各種の出力を作成できます。DATAステートメントには、複数の出力を指定できます。ただし、データビューは1つしか指定できません。VIEW=オプションを指定すると、ビューを作成できます。また、PGM=オプションを指定すると、ストアドプログラムを作成できます。

READパスワードとALTERパスワードの両方を使用する

コンパイル済みDATAステッププログラムまたはDATAステップビューの作成時にREADパスワードとALTERパスワードを両方使用すると、次のようになります。
  • コンパイル済みDATAステッププログラムまたはDATAステップビューを実行するには、READパスワードまたはALTERパスワードが必要になります。
  • コンパイル済みDATAステッププログラムまたはDATAステップビューにDESCRIBEステートメントおよびEXECUTEステートメントが含まれている場合は、READパスワードまたはALTERパスワードが必要になります。
    • ALTERパスワードをこのDESCRIBEステートメントおよびEXECUTEステートメントに使用する場合、次のようになります。
      • DESCRIBEステートメントとEXECUTEステートメントの両方が実行されます。
      • 無効なALTERパスワードを指定してコンパイル済みDATAステッププログラムやDATAステップビューを実行した場合、次のようになります。
        DESCRIBEステートメントは実行されません。
        バッチモードでは、このEXECUTEステートメントは何も影響しません。
        対話型モードでは、READパスワードの入力を求めるプロンプトが表示されます。READパスワードが有効な場合、EXECUTEステートメントが処理されます。READパスワードが無効な場合、EXECUTEステートメントは処理されません。
    • READパスワードをDESCRIBEステートメントおよびEXECUTEステートメントに使用すると、次のようになります。
      • 対話型モードでは、ALTERパスワードの入力を求めるプロンプトが表示されます。
        有効なALTERパスワードを入力すると、DESCRIBEステートメントとEXECUTEステートメントの両方が実行されます。
        無効なALTERパスワードを入力すると、EXECUTEステートメントは実行されますが、DESCRIBEステートメントは実行されません。
      • バッチモードでは、EXECUTEステートメントは処理されますが、DESCRIBEステートメントは処理されません。
      • 対話型モードでもバッチモードでも、無効なREADパスワードを指定すると、EXECUTEステートメントは実行されません。
  • コンパイル済みDATAステッププログラムまたはDATAステップビューにDESCRIBEステートメントが含まれる場合には、ALTERパスワードが必要です。
  • コンパイル済みDATAステッププログラムまたはDATAステップビューを置き換えるには、ALTERパスワードが必要です。

出力データセットを作成する(形式1)

1つまたは複数のデータセットを作成するには、DATAステートメントを使用します。データセットオプションを使用すると、出力データセットをカスタマイズすることができます。次のDATAステップでは、2つの出力データセットEXAMPLE1およびEXAMPLE2を作成します。データセットオプションDROPを使用し、変数IDNUMBERはEXAMPLE2に書き込まれないようにします。
data example1 example2 (drop=IDnumber);
   set sample;
   . . .more SAS statements. . .
run; 

データセットを作成しない場合(形式2)

通常、DATAステートメントでは、出力データセットの作成に使用するデータセット名を少なくとも1つ指定します。ただし、レポート出力または外部ファイルへのデータ出力を目的とするDATAステップでは、出力データセットの作成は不要なことがあります。データセット名として_NULL_キーワードを指定すると、オブザベーションをデータセットに書き込まずに、DATAステップを実行できます。この例では、各オブザベーションのNameの値をSASログに書き込みます。出力データセットは作成されません。
data _NULL_;
   set sample;
   put Name ID;
run;

DATAステップビューの作成(形式3)

DATAステップビューを先に作成して、後から実行することができます。次のDATAステップの例では、DATAステップビューが作成されます。また、SOURCE=ENCRYPTオプションを使用し、ソースコードの保存と暗号化を実行します。
data phone_list / view=phone_list (source=encrypt);
   set customer_list;
   . . .more SAS statements. . . 
run;
詳細については、XisError: No pubcode in link data found for lrconを参照してください。

コンパイル済みDATAステッププログラムの作成(形式4)

DATAステッププログラムをコンパイルして保存できるため、このストアドプログラムを後から実行できます。コンパイル済みDATAステッププログラムにより、DATAステッププログラムを繰り返しコンパイルする必要がなくなるため、処理コストを削減できます。次のDATAステップの例では、DATAステッププログラムのコンパイルと保存を行います。ここでは、ALTERパスワードオプションを使用します。そのため、ユーザーは既存のストアドプログラムを置き換えたり、コンパイル済みプログラムが置き換えられないように保護することができます。
data testfile / pgm=stored.test_program (alter=sales);
   set sales_data;
   . . .more SAS statements. . .
run;
詳細については、XisError: No pubcode in link data found for lrconを参照してください。

DATAステップビューの記述(形式5)

次の例では、DATAステップビューでDESCRIBEステートメントを使用し、ソースコードのコピーをSASログに書き込みます。
data view=inventory;
   describe;
run;  
詳細については、DESCRIBEステートメントを参照してください。

コンパイル済みDATAステッププログラムの実行(形式6)

次の例では、コンパイル済みDATAステッププログラムを実行します。ここでは、DESCRIBEステートメントを使用し、ソースコードのコピーをSASログに書き込みます。
libname stored 'SAS library';
data pgm=stored.employee_list;
   describe;
   execute;
run;
libname stored 'SAS library';
data pgm=stored.test_program;
   describe;
   execute;
   . . .more SAS statements. . . 
run;
詳細については、DESCRIBEステートメントおよび EXECUTEステートメントを参照してください。

例1: 複数データファイルの作成とデータセットオプションの使用

次のDATAステートメントでは、複数のデータセットを作成してから、出力データセットの内容を変更します。
data error (keep=subject date weight)
     fitness(label='Exercise Study' 
             rename=(weight=pounds));
ERRORデータセットには3つの変数が含まれています。FITNESSデータセットにラベルを割り当てた後、変数の名前をweightからpoundsに変更します。

例2: 入力DATAステップビューの作成

次のデータステップでは、SASデータファイルのかわりに、入力DATAステップビューを作成します。
libname ourlib 'SAS-library';
data ourlib.test / view=ourlib.test;
   set ourlib.fittest;
   tot=sum(of score1-score10);
run;

例3: ビューおよびデータファイルの作成

次のDATAステップでは、入力DATAステップビューTHEIRLIB.TESTを作成し、一時SASデータセットSCORETOTを追加で作成します。
libname ourlib 'SAS-library-1';
libname theirlib 'SAS-library-2';
data theirlib.test scoretot
   / view=theirlib.test;
   set ourlib.fittest;
   tot=sum(of score1-score10);
run;
後続のDATAステップまたはPROCステップでビューTHEIRLIB.TESTが処理されるまで、データファイルSCORETOTは作成されません。

例4: コンパイル済みプログラムの保存と実行

次に示す最初のDATAステップでは、STORED.SALESFIGというコンパイル済みプログラムが作成されます。
libname in 'SAS-library-1 ';
libname stored 'SAS-library-2 ';
data salesdata / pgm=stored.salesfig;
   set in.sales;
   qtr1tot=jan+feb+mar;
run;
コンパイル済みプログラムSTORED.SALESFIGを実行すると、データセットSALESDATAが作成されます。
data pgm=stored.salesfig;
run;

例5: カスタムレポートの作成

次のプログラムの2番目のDATAステップではカスタムレポートを生成します。また、_NULL_キーワードが指定されているので、SASデータセットを作成せずにDATAステップを実行します。
data sales;
   input dept : $10. jan feb mar;
   datalines;
shoes 4344 3555 2666
housewares 3777 4888 7999
appliances 53111 7122 41333
;
data _null_;
   set sales;
   qtr1tot=jan+feb+mar;
   put 'Total Quarterly Sales: ' 
       qtr1tot dollar12.;
run;

例6: コンパイル済みDATAステッププログラムにパスワードを使用する

次に示す最初のDATAステップでは、STORED.ITEMSというコンパイル済みDATAステッププログラムを作成します。また、このプログラムではALTERパスワードを使用しているので、プログラムへのアクセスが制限されます。
data sample;
   input Name $ TotalItems $;
   datalines;
Lin 328
Susan 433
Ken 156
Pat 340
;
proc print data=sample;
run;
libname stored 'SAS-library';
data employees / pgm=stored.items (alter=klondike);
   set sample;
   if TotalItems > 200 then output;
   run; 
このDATAステップでは、コンパイル済みDATAステッププログラムSTORED.ITEMSを実行します。DESCRIBEステートメントを使用し、ソースコードをSASログに出力します。このプログラムはALTERパスワードを使用して作成されているので、DESCRIBEステートメントを使用する場合はこのパスワードを使用する必要があります。パスワードを入力しないと、入力を求めるプロンプトが表示されます。
data pgm=stored.items (alter=klondike);
   describe;
   execute;
run;

例7: ネストレベルの表示

次のプログラムには、2つのネストレベルが含まれています。4つのログメッセージが作成されます。このメッセージは、各ネストレベルの開始時と終了時に1つずつ作成されます。
data _null_ /nesting;
   do i = 1 to 10;
      do j = 1 to 5;
         put i= j=;
      end;
   end;
run;
ネストレベルのデバッグ(SASログから抜粋)
6 data _null_ /nesting; 7 do i = 1 to 10; - 719 NOTE 719-185:*** DO begin level 1 ***.8          do j = 1 to 5; - 719 NOTE 719-185:*** DO begin level 2 ***.9             put i= j=; 10         end; --- 720 NOTE 720-185:*** DO end level 2 ***.11      end; --- 720 NOTE 720-185:*** DO end level 1 ***.12   run;

関連項目:

“DATA Step Programming in Hadoop” - SAS In-Database Products:User’s Guide
“DATA Step Programming in SAS LASR Analytic Server” - SAS LASR Analytic Server:Reference Guide
XisError: No pubcode in link data found for ledsoptsref
前のページ|次のページ|ページの先頭へ