前のページ|次のページ

CALL SETルーチン

SASデータセット変数を名前とデータ型が同じDATAステップまたはマクロ変数にリンクします。

カテゴリ: 変数制御

構文

CALL SET(data-set-id);

必須引数

data-set-id

データセットを開くときにOPEN関数によって割り当てられるID。

詳細

SETを使用すると、関数を使用してSASファイルを読み込んだり操作したりするときに、変更または検証のために変数値にアクセスするために必要なコーディングを大幅に削減できます。CALL SETの後、SASデータセットから読み込みが実行されると、対応するマクロまたはDATAステップ変数の値は一致するSASデータセット変数の値に設定されます。変数の長さが一致しない場合、値は必要に応じて切り捨てられるか、埋め込まれます。SETを使用しない場合、データセット変数とマクロまたはDATAステップ変数の間で明示的に値を移動するには、GETVARCおよびGETVARN関数を使用する必要があります。
一般的に、データセットとマクロおよびDATAステップ変数をリンクするには、OPENの直後にCALL SETを使用します。

例: CALL SETルーチンを使用する

この例では、CALL SETルーチンを使用します。
  • 次のステートメントは、オブザベーションをフェッチするときにマクロ変数PRICEとSTYLEの値を自動的に設定します。
    %macro setvar;
       %let dsid=%sysfunc(open(sasuser.houses, i));
          /* No leading ampersand with %SYSCALL */ 
       %syscall set(dsid); 
       %let rc=%sysfunc(fetchobs(&dsid, 10));
       %let rc=%sysfunc(close(&dsid));
    %mend setvar;
    %global price style;
    %setvar
    %put _global_;
  • %PUTステートメントは、次の行をSASログに書き込みます。
    GLOBAL PRICE 127150
    GLOBAL STYLE CONDO
  • 次のステートメントは、Sasuser.Housesの最初の10件のオブザベーションの値を取得し、MYDATAに保存します。
    data mydata;
          /* create variables for assignment */
          /*by CALL SET */
       length style $8 sqfeet bedrooms baths 8 
          street $16 price 8;
       drop rc dsid;
       dsid=open("sasuser.houses", "i");
       call set (dsid);
       do i=1 to 10;
          rc=fetchobs(dsid, i);
          output;
       end;
    run;

関連項目:

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