SAS System 8以降での英大文字・英小文字変数名の区別について

[OS] WINDOWS
[リリース] SAS System 8以降
[キーワード] OPTION, VALIDVARNAME, UPCASE, V7

[質問]

SAS System 8でSASデータセットを作成する際、下記のようにすると、

  • SASデータセット1では変数名を「Variable」
  • SASデータセット2では変数名を「variable」
  • SASデータセット3では変数名を「VARIABLE」
それぞれその通りの変数になります。
ところが3つの変数を1つのSASデータセットで作成しようとすると、「Variable」という変数が1つできるだけです。3つの変数を作ることはできませんか。

[回答]

残念ながらできません。変数は1つ作られるだけです。
SAS System 6 までは、変数名は全て「英大文字」で表示されていましたが、SAS System 8 では英大文字としない表示方法も選択できるようになりました。

/************************************/
/* 変数名を英大文字で表示させる方法 */

/*    (V6互換、変数名8バイト)     */

/* プログラム例                     */
   OPTIONS VALIDVARNAME = V6 ;
   DATA TEST ; variable = 'A' ; RUN ;

/* 結果例                           */
        OBS    VARIABLE

        1        A

/*   (変数名大文字表示)           */

/* プログラム例                     */
   OPTIONS VALIDVARNAME = UPCASE ;
   DATA TEST ; variable = 'A' ; RUN ;

/* 結果例                           */
        OBS    VARIABLE

        1        A

/********************************************/
/* 変数名を作成時記述の通りに表示させる方法 */

/* プログラム例                     */
   OPTIONS VALIDVARNAME = V7 ;
   DATA TEST ; variable = 'A' ; RUN ;

/* 結果例                           */
        OBS    variable

        1        A

このように、「変数名の表示方法」を制御することは可能になりましたが、 「変数自体」は上記の例で言えば「VARIABLE」「variable」は全く同一のものを指すことになります。

質問の3つの変数も「表記上の違い」を区別することはできますが、全く同じ変数を表しますので、 同一のデータセットで作成しようとすると、区別ができなくなります。