全角でも違反は違反。 | SPSS備忘録

全角でも違反は違反。

SPSSにも変数名に命名規則があります。SPSSのマニュアルから引用すると、


* 名前は文字で始まる必要があります。残りの文字ではすべての文字、数字を使用でき、さらにピリオドまたは記号@、#、_、$ を使用することもできます。
* 変数名は、ピリオドで終わることはできません。
* 変数名を下線で終わらせることは避けてください(いくつかの手続きで自動的に作成された変数と混同しないようにするため)。
* 名前の長さは、64 バイトを超えることはできません。一般に64 バイトは、1 バイト言語(たとえば、英語、フランス語、ドイツ語、スペイン語、イタリア語、ヘブライ語、ロシア語、ギリシャ語、アラビア語、タイ語) では64 文字に相当し、2バイト言語(たとえば、日本語、中国語、韓国語) では32 文字に相当します。
* スペースおよび上記記号以外の特殊文字(たとえば、!、?、’、*) は使用できません。
* 各変数名は一意でなければなりません。
* 予約キーワードを変数名として使用することはできません。予約キーワードを次に列記します。ALL、AND、BY、EQ、GE、GT、LE、LT、NE、NOT、OR、TO、WITHです。
* 変数名は、大文字と小文字の組み合わせを使用できます。大文字と小文字は、表示目的で保持されます。
* 出力において長い変数名を複数の行に折り返す必要がある場合、SPSS は、下線、ピリオド、および小文字から大文字に変化する場所で行を分割します。


ところがSPSS15.0以前では、この規則を守っていなくても、全角で入力してしまえば、数字から書き出そうが、「(」などの記号を使おうが、半角の規則違反文字とはみなさず入力や分析に使用できてしまいました。 だからそのまま利用していた人も多いと思います。


しかし、SPSS16.0の変数名では、全角も半角も違反は違反として判定し、入力しようとしても「変数名に不正な文字が含まれています」と判定して、入力できません。


SPSSによると意図的にそうしているらしいので、不具合ではないです。元々上記のような命名規則があったわけですから、最初からそれを守っていれば問題なかったわけです。ただ今まで使えてしまっていたことをいいことにSPSS14.0やSPSS15.0でガンガン数字から始まる変数を作っていて、いきなりこのバージョンではダメといわれてしまうと、確かにがっかりですね。


そもそも2000年ごろのSPSSは変数名が半角8文字という制限だったので、古いユーザーはみんな変数名に気を使っておりましたが、なまじ半角128文字まで伸びてしまったために気を使わない人が出たのでしょう。私に聞いてきた同僚もそうでした。


「変数ラベル」はほとんど制限がなく、出力にも反映されるので、変数名ではなくこちらに「問1このブログをどう思いますか?」などを入力するようにトレーニングの講師にも言われますので、そうするようにしましょう。