変数名の略記法について

[OS] ALL
[リリース] ALL
[キーワード] BASE, DATA, VARIABLE, SIMPLIFICATION

[質問]

多くの変数を持つデータセットから、KEEPステートメントを指定して必要な変数のみを処理対象としています。このような際に、プログラムを簡略化する方法はありますか。

[回答]

変数名の略記法を使用すると便利です。以下のサンプルプログラムを参考にしてください。


                                           /* サンプルデータセットの作成1 */
DATA sample1;
  ARRAY a(10);             /* ARRAYステートメントで変数a1からa10までを作成 */
  DO i=1 TO 10;
    DO j=1 TO 10;
      a(j)=i;
    END;
  OUTPUT;
  END;
  DROP i j;
RUN;
                                         /* 数字付きの変数名をまとめる記述 */
DATA result1;
  SET sample1;
  KEEP a2-a4;
RUN;

                                            /* サンプルデータセットの作成2 */
DATA sample2;
  SET sashelp.class;
RUN;
                                           /* 変数の並び順を利用しての記述 */
DATA result2;
  SET sample2;
  KEEP sex--height;
RUN;
                                                         /* 変数の型制限 */
DATA result3;
  SET sample2;
  *KEEP sex _CHARACTER_;
  KEEP sex _NUMERIC_;
RUN;

                             /* 変数の並び順を利用しての記述 + 変数の型制限 */
DATA result4;
  SET sample2;
  KEEP name-numeric-height;
  *KEEP name-character-height;
RUN;

また、略記法ではありませんが、変数名が特定の文字列で始まる場合などは、「:」(コロン)を利用して変数の指定を簡略化できます。

                                           /* 先頭が aで始まる変数名を選択 */
DATA result5;
  SET sample1;
  KEEP a: ;
RUN;