2015年6月23日火曜日

DS2プロシジャ入門3:変数属性と配列の定義



① 属性を付与する方法

変数を宣言するついでに、属性も定義する感じです。

構文
 dcl  データ型  変数名  having   label   'ラベル'
                                                   format  フォーマット
                                                   informat  インフォーマット ;


proc ds2;
   data DT1 (overwrite=yes);
       dcl double VAR1 having  label 'aaa'  format yymmdd10. ;
       method init();
            VAR1 = inputn('2015/06/23', 'yymmdd10');
       end;
   enddata;
   run;
quit;




② 配列の定義方法

一時配列(DS2プロシジャを終了したら残らない)を作る構文
 dcl  データ型  配列名 [要素の数] ;


proc ds2;
   data _NULL_;
       dcl double AR[2];
       method init();
            AR[1] = 10;
            AR[2] = 20;
            put AR[1]=;
            put AR[2]=;
       end;
   enddata;
   run;
quit;

ログ
AR[1]=10
AR[2]=20


通常の配列(DS2プロシジャを終了しても変数は残る)を作る構文
 vararray データ型  配列名 [要素の数]   変数1 変数2 ・・・;


proc ds2;
   data DT2 (overwrite=yes);
       vararray double AR[2] A B;
       method init();
            AR[1] = 10;
            AR[2] = 20;
       end;
   enddata;
   run;
quit;


注意:
「vararray double AR[1] double」みたいな感じで、変数名を指定する部分にデータ型を指定すると特殊な動き(想定外の挙動)をするため、ご注意ください(詳細はリファレンスなどを参照下さい)


DS2プロシジャ入門記事

1: 基本構文
: 変数の宣言
3: 変数属性と配列の定義

0 件のコメント:

コメントを投稿