前のページ|次のページ

NOTE関数

SASデータセットの現在のオブザベーションのオブザベーションIDを返します。

カテゴリ: SASファイルI/O

構文

必須引数

data-set-id

OPEN関数が返すデータセット識別子を指定する数値変数です。

詳細

オブザベーションID値を使用して、POINTを使用して現在のオブザベーションに戻ることができます。オブザベーションは、NOTEを使用してマークを付けておき、後からPOINTを使用して戻ることができます。各オブザベーションIDは重複しない数値です。
オブザベーションIDに関連付けられているメモリを解放するには、DROPNOTEを使用します。

この例では、CUROBSを呼び出してオブザベーション番号を表示し、NOTEを呼び出してオブザベーションにマークを付け、POINTを呼び出してNOTEIDに対応するオブザベーションに移動します。
%let dsid=%sysfunc(open(sasuser.fitness,i));
  /* Go to observation 10 in data set */
%let rc=%sysfunc(fetchobs(&dsid, 10));
%if %sysfunc(abs(&rc)) %then
  %put FETCHOBS FAILED;
%else
  %do;
      /* Display observation number     */
      /* in the Log                     */
    %let cur=%sysfunc(curobs(&dsid));
    %put CUROBS=&cur;
      /* Mark observation 10 using NOTE */
    %let noteid=%sysfunc(note(&dsid));
      /* Rewind pointer to beginning    */
      /* of data                        */
      /* set using REWIND               */
    %let rc=%sysfunc(rewind(&dsid));
      /* FETCH first observation into DDV */
    %let rc=%sysfunc(fetch(&dsid));
      /* Display first observation number */
    %let cur=%sysfunc(curobs(&dsid));
    %put CUROBS=&cur;
      /* POINT to observation 10 marked  */
      /* earlier by NOTE                 */
    %let rc=%sysfunc(point(&dsid, &noteid));
      /* FETCH observation into DDV */
    %let rc=%sysfunc(fetch(&dsid));
      /* Display observation number 10   */
      /* marked by NOTE                  */
    %let cur=%sysfunc(curobs(&dsid));
    %put CUROBS=&cur;
  %end;
%if (&dsid > 0) %then
  %let rc=%sysfunc(close(&dsid));
次の出力がログに書き込まれます。
CUROBS=10 CUROBS=1 CUROBS=10

関連項目:

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