SPSS備忘録 -43ページ目

夏休みをとります

さて、定例コメントです。まず最初にタイトルの件ですが、8月は夏休みをとらせて下さい。9月に復帰します。守秘義務の関係で実際にやっている内容そのままに記事に出来ないので、最近記事に困っておりますので、休みの8月中に多少ストックも作っておきたいと思います。初日が休みなので、9月3日にお会いしましょう。


アメブロランキングの総合ランキングは44507位/1609634人中、ジャンルランキングは321位/5877人中でした。ほぼ先月と同じくらいですね。ただ、アメブロユーザーの人は最近実感されていると思いますが、Webアクセスログ関係のシステムって私は信用できないんですよね。どうかんがえてもそんな順路はないだろうというログがとれたり、もっとアクセスがあったはずなのにログになかったりなどが起こっているようでならないので・・・。想像なのですが、DoS 攻撃対策で必要なログも消されていたり、アクセス側もCookie などを消したり、「なんとかセキュリティ」で足跡を守ったりして、きちんととれていないのが実態なのではないかな?と思うのですがね・・・。


http://support.spss.com/ 」で、SPSS15.0.1.1パッチというのが出ているのですが(要guestユーザーなどでログイン)英語版専用と但し書きされているので、日本語版SPSS15.0には適用しないのですが、日本語版にこのパッチで修正すべき不具合はなかったのかなあ?という不安はありますね。


http://support.spss.com/Tech/Products/SPSS/Patches/SPSSforWindows/15.0.1.1/15.0.1.1_Readme.html

ダブルクリックで起動すると不気味なファイルが生成される。

Windowsの場合、ファイルのダブルクリックでそのファイルに関連付けられたソフトを起動しつつファイルを開くことが出来ます。しかしSPSSのファイルをダブルクリックして起動すると、


lsprst7.dll
lsprst7.tgz
sysprs7.dll
sysprs7.tgz
tmpprst.dll


といったファイルがSPSSファイルのあるディレクトリに生成されてSPSSが起動される場合があります。


この問題については3月25日の記事 のように「Knowledgebase Search」をすると、以下のページがヒットして解説されております(要ログイン)。


http://support.spss.com/Tech/Troubleshooting/ressearchdetail.asp?ID=52297


この問題は、WindowsにUsers権限のユーザーでログオンしている場合に発生するそうで、Users権限よりも上の権限のユーザーではSPSSのファイルをダブルクリックすると「C:\Windows\System32\」ディレクトリに上記のファイルを生成するのですが、Users権限では「C:\Windows\System32\」ディレクトリに書き込みが出来ないのでダブルクリックしたファイルのあるディレクトリに上記のファイルが生成されるとのことです。


回避策は、
(1)SPSSのファイルをダブルクリックして起動したいユーザーには、Power Users以上の権限をユーザーにつける。
(2)「C:\Windows\System32\」にUsersのユーザーも書き込み権限をつける。
(3)SPSSのファイルをダブルクリックして起動しない!。
のいずれかでしょう。ほかにも「C:\Windows\System32\」にあとで勝手にファイルを追加しているソフトはありそうですが、アホなユーザーにいたずらされる可能性があるところは(2)が出来ないので、SPSS社に苦情を出しているかもしれませんね。


ClementineなどSPSS以外のソフトも対象ということで、「SPSS社のソフトウェア全般」というテーマにしておきます。


7月30日時点で、


At this time this is how it all works but our development is looking into the issue to see if this can be handled in a more elegant way in the future.


という記述がこのページにあるのですが、「Dec 29 2004」に問題が判明しているのに未だに解決してないって、ホントに対策をとっているのでしょうかねえ?。

多重回答が1フィールドにまとめて入力されてしまった場合(Clementine)

7月25日の記事 のClementine版です。


データ


・・・というようなデータが渡されたとします。値は1フィールドごとに分けて入力しなければそれぞれを区別できないって言うのに、そういうことを知らない人が平気でこんな入力をしている場合があります。


しかしこれを分析しなければならないこともありますので、データ加工でなんとかします。アプローチはいくつかあると思うのですが、そのなかの一例として、SPSSの記事 の考え方をClementineで行う方法を参考にしてください。


フィールド作成ノードで、仮のフィールド「回答2」を作成します。


回答2


「回答2」の文字式は


"," >< 回答 >< ","


とします。元の「回答」の前後に区切り文字(今回は「,」)を入れ込むかたちになります。この理由は後述します。値に余白がある場合は「"," >< trim(回答) >< ","」という式にしましょう。フィール作成ノードの代わりに置換ノードで「回答」自体を前後に区切り文字(今回は「,」)を入れ込むかたちにして直接加工してもよいでしょう。


回答_1

次に「1」という値が「回答」にあったのかなかったのかを表現するフィールド「回答_1」を作成します。フィールド作成ノードの[データ型]で[フラグ型]フィールドの作成を選び、真となる条件として

issubstring(",1,", 回答2) >= 1


と、文字列の位置を返す関数「issubstring(文字列, 文字型フィールド)」を利用して、「回答2」に「",1,"」が登場した場合に真、しない場合は偽を返すフィールドを作成します。

なぜ「1」ではなく「,1,」なのかは、「1」で検索させると「1」だけでなく「10」、「11から19」、「21」、「31」と、「1」ではないけど「1」が入っているためこれらもヒットしてしまうためです。区切り文字を利用して「1」だけ区別してヒットするようにし、そのために区切り文字のない値の前後にも区切り文字を入れたという次第です。

この時点でストリームを実行すると回答に「1」があるかないかのフラグフィールドが追加されております。


途中経過

あとはこのフィールドの設定をコピーして、「2」用、「3」用と修正してストリームに追加すれば、その他の値のフラグフィールドも作成できます。


複製


全ての値のフラグフィールドを追加したストリームの実行で完成が確認できます。


完成