データセットオプション

Last-modified: 2008-07-02 (水) 22:23:32

入力や出力するSASデータセットに対しいろいろな作用を与えます.SASデータセット名の後ろに括弧ではさんで1つまたは複数指定しできます.

SET SASデータセット名(データセットオプション1 データセットオプション2 ..);

例えば,オブザベーション5から10までの変数var1,var2,var3だけを表示するには,次のように指定します.

proc print data=list(keep=var1 var2 var3 firstobs=5 obs=10);
run;

オプションの内容にによって,一緒に指定できないもの,一緒に指定しなければならないもの,入力処理と出力処理で意味が違ったり使用できないものもあります.入力時の指定では,入力データセットから取り込まれるデータストリームに作用し,入力データセットそれ自体には影響は与えません.出力時の指定では,データストリームがデータセットに出力される際に作用し,処理されてる段階では影響しません.

よく使われるデータセットオプション

  • KEEP=データセットオプション?
    KEEP=変数1 変数2 ...
    使用する変数のみを指定します.指定されなかった変数は取り込まれません.DROPデータオプションとは併用できません.
  • DROP=データセットオプション?
    DROP=変数1 変数2 ...
    使用しない変数を指定します.指定されなかった変数のみが取り込まれます.KEEPデータオプションとは併用できません.
  • FIRSTOBS=データセットオプション?
    FIRSTOBS=n
    読み込みを開始するオブザベーション番号を指定します.出力データセットには指定できません.WHERE=データセットオプションやWHEREステートメントがある場合,先にWHERE条件が適用され,そのサブセットに対して指示されることに注意してください.
  • OBS=データセットオプション?
    OBS=n
    読み込みを終了するオブザベーション番号を指定します.出力データセットには指定できません.WHERE=データセットオプションやWHEREステートメントがある場合,先にWHERE条件が適用され,そのサブセットに対して指示されることに注意してください.
  • IN=データセットオプション?
    IN=変数名
    読み込み状態を保持する変数を指定します.0が読み込まれていない,1が読み込まれていることを意味します.MERGEステートメント,SETステートメントでよく使われます.
  • WHERE=データセットオプション?
    WHERE=(条件式)
    読み込むデータセットを制限する条件を指定します.FISTOBS=データセットオプションやFISTOBS=データセットオプションより先に適用されます.
  • RENAME=データセットオプション?
    RENAME=(元変数名1=新変数名1 元変数名2=新変数名2 ..)
    変数名をリネームします.
  • INDEX=データセットオプション?
    INDEX=(変数名1 変数名2 ..)
    出力SASデータセットに対し,インデックス化するキー変数を指定します.変数の代わりに,複合キーを指定することもできます.
  • LABEL=データセットオプション?
    LABEL="文字列"
    出力SASデータセットのデータセットラベルを指定します.
  • TYPE=データセットオプション?
    TYPE=文字列
    SAS/STATなどの一部のプロシジャでは,特別な様式で整えられたSASデータセットを入力とする場合があり,その種類をデータセットタイプといいます.例えば,CORRプロシジャの出力する相関行列のSASデータセットには,CORRというデータセットタイプ名が付与されています.通常のデータセットにはデータセットタイプはありませんが,これを出力SASデータセットに明示的に与える場合,TYPE=にそのタイプ名を指定します.クーテーションで囲む必要はありません.
  • SORTEDBY=データセットオプション?
    SORTEDBY=変数1 変数2 ..
    SORTEDBY=変数1 DESCENDING 変数2 ..
    SASデータセットは,SORTプロシジャなどでソートされていると,どの変数でソートされているか,それが昇順か降順(DESCENDING)かどうかを持っています.この情報は,無駄に再度ソートしないなどの用途に使われますが,ソートされたデータをデータ行や外部データから読み込む時,ソート済みの事実を明示的に記録するために用います.