SPSS Win  勝手にFAQ  データ・画面編


トラブル

[Q]AMOS24で,Excelファイルの文字型変数をグループ化変数に指定するとグループ値を指定できない。
[A]AMOS24で(私の確認した環境では)見られる現象。グループ値を開くと「欠損値」となってグループ値を指定できない。
AMOS25では解消されている。

[Q] 一旦計算したあと,再計算すると「破棄されたオブジェクトにアクセスできません」というエラーが出て計算が止まってしまう
[A] .NET Frameworkを更新すると治ることがある
(Microsoft Update(Windows Update)の「ようこそ」画面で,「高速」ではなく「カスタム」で検索し「追加選択(ソフトウェア)」から探し出す)



[Q] Amosでテキスト出力(Amos出力)を表示するとError number:70のエラーが出る
[A] InternetExplorer7が入っている環境でAMOS6,7で発生するらしい。
米国本社の
サポートページやYork大学のサポートページにパッチが出ているので,対応するバージョンのものをダウンロードしAmosのインストールフォルダに上書きコピーする(AMOS5でもエラーが発生するがパッチは出ていない)



[Q] 数値型から文字型に変換すると値が変わってしまうことがある(例1,2)
文字型変数の幅を変えると,データが消えてしまう(例3)

[例1] 値よりも狭い幅にすると
  1. 数値型で幅8,小数点桁0の変数を新規作成
  2. 1ケース目に"12345678"という値を入れる
  3. この変数を「文字型 幅6」に変更
  4. データを見ると"1.E+7"という文字列になってしまう
  5. 数値型,幅8,小数点桁0に戻すと,値は"10000000"になってしまう

おそらく,まず「幅6」の処理が行われ,8桁の数値が桁あふれをおこすために
「1.E+7」という「数値」にまず置き換えられ,次にその表示がそのまま文字型として
置き換えられるために発生するのだろう

[例2] 値の文字幅の範囲内であっても...
  1. 数値型で幅8,小数点桁0の変数を新規作成
  2. 1ケース目に"12345"という5桁の値を入れる
  3. この変数を「文字型 (幅8のまま)」に変更してデータを見る(この時点ではデータ表示に変化ない)
  4. 次に「幅6」に変更
  5. 値(12345)は5桁なので,6桁以内のはずなのに,データを見ると"123"と右端2文字が欠けて3文字しか残らない
  6. 数値型,幅8に戻しても"123"という数値になってしまう

具体的には,変更前のセル幅よりも,値の文字幅が短い場合(例では8桁のセルに5桁の数値が入っている),
変更前の桁幅(8)−変更後の文字列幅(6)=2文字分がデータの右端から削られてしまうらしい
(要するに,セルの左端に,元の桁幅(8)−数値の幅(5)=3文字分のスペースが自動的に補われ
[スペース3文字+値の内前半の"123"]だけが残り,末尾の"45"が削られてしまうものと思われる)
(なお,この現象は小数点桁を0以外に設定すると発生しない模様)

[例3] 文字型変数の文字幅を小さく変更すると,データが消えてしまう
 
noという変数は11文字幅で このようにデータが入っている。これを...



 
4文字幅に変更すると データが消えてしまう(なお,11文字幅に戻してもデータは戻らない)


[A]  数値型の変数を文字型に変換する場合の留意点
※ なるべく桁幅はいじらないのが賢明かもしれない
(しかしケースの結合などの際に桁数が違うとうまく結合されないことがある)

[Q] ヘルプに「検索」タグが現れない
[A] Windows95のインストールでFTSRCH.DLLをシステムファイルにコピーする
例 DOSプロンプトで以下の通り実行すれば,解凍及びコピーをしてくれる
Q:extract.exe/a/l c:\windows\system\win95_04.cab ftsrch.dll
(ドライブQ:にwindows95のCD,c:\widowsにwindowsシステムがあるとする)


[Q 9.0] ヘルプ-トピック-AskMeを呼び出すとエラーになって使えない
Initialaization failed:Please confirm that the .LIM file and all other necessary AnswerWorks data and runtime files have been properly installed:0x8007000eというエラーが表示されてから検索画面になるが,何も検索できない
[A] 日本語版ではAskMe機能には対応してないので使えない


ヒント


[Q] クロス集計表の集計結果をデータとして出力したい
[A] 次のようなシンタックスを作成する

*PROCEDURE OUTPUT OUTFILE=で出力ファイル名を指定する.
PROCEDURE OUTPUT OUTFILE="foo.txt".

* さらにクロス集計表で/write=cells を追加する.
CROSSTABS
/TABLES=a BY b
/FORMAT=AVALUE TABLES
/CELLS=COUNT
/WRITE=CELLS
/COUNT ROUND CELL.


*PROCEDURE OUTPUTはCROSSTABS 及び SURVIVALのみで有効.

例) 【クロス集計表】
a学年/b合否0不合格 1合格
1 4 1
232
3 23
405

【出力結果】foo.txt
 ※ファイルはテキスト形式
 ※変数名は付加されない
      集計 a学年 b合否
1 1 4 1 0
1 1 3 2 0
1 1 2 3 0
1 1 1 1 1
1 1 2 2 1
1 1 3 3 1
1 1 5 4 1


[Q] 値ラベルをいっきに消去したい
[A] 次のように「値」を入れないシンタックスを使う
value labels x1.
複数の変数に対して適用も可能
value labels a1 to a10.


[Q] 値ラベルや変数ラベルの中に[']や['']を使いたい
[A1] [''(シングルクォーテション2つ)]で代用する
例:value label x1 9 'Don''t know'.
[A2] ["(ダブルクォーテション)]で囲む
例:value label x1 9 "Don't know".
[A3] [']で囲む
例:valriable labels x1 ' I am a "boring person" '.

混在しても構わない
例:valriable labels
x1 ' 'I''m a "boring person" '
x2 "I don't care----" .


[Q] 0,1データからコレスポンデンス分析用のデータへの変換方法
0,1型データはそのままではコレスポンデンス分析に使うことは出来ない。
 ケース番号項目1項目2項目3
11101
22010
3::::

↑のようなデータは↓のような形式に直す必要がある
 ケース番号選択項目番号
111
213
322
4::
[A]
次の手順で行う

[Q 14〜] データを読み込むだけで出力画面が表示されるのがうるさい
[A] [編集]-[オプション]-[ビューア]タブを開き,左側の「初期出力状態」画面を以下のように設定
「項目」欄:ログ
「内容を最初は」を「隠す」
「ログの中にコマンドを表示」のチェックを外す


[Q] 一度に変数のフォーマット定義を変更したい
[A] SPSS9.0までは次のようにする

  1. テンプレートに事前に変数の型を定義し名前をつけておく
  2. 定義したい変数を選択状態にし
  3. データ-テンプレートでその名前を選択し「型」をチェックしてから[OK]する
10.0以降ではテンプレート機能が廃止されたので,データビュー画面でそれぞれの項目についての設定をコピー&ペーストする。(変数型について複数の項目を同時にコピーできないため変数幅と小数点桁数などを別々にいちいち貼り付けなければならず,以前より不便になった。全部いっぺんにコピー・ペーストは出来るが,これだとラベルなども全部コピーされてしまう)
[Q] データエディタ上に展開してないデータファイルを読み込みたい
[A] コマンドシンタックスでGET FILEコマンドを用いる

例:

GET FILE="C:\DATA\MYDATA.SAV".
(ファイル名を二重" "または一重' 'で囲む)


[Q] 値の範囲を指定した「値の再割り当て」ルールは?
[変換]-[値の再割り当て]では,同一変数,異なる変数にかかわらず「今までの値と新しい値」画面の 「今までの値」欄で「範囲(N)」で,一定の範囲の値を新しい値に置き換えることができる。たとえば
としたい場合は
とすればよい。  コマンドシンタックスは以下の通り(異なる変数Bに再割り当ての例)
RECODE a (1 thru 2=1) (3 thru 5=2) (else=3) INTO B.

ここにあるように,thruの前後(範囲で指定する値)はその値を含む関係(xx以上xx以下:≦)

ただし,実際の割り当てはは指定された順序で定義される(シンタックスの左から定義される)ので, 以下のような例ではA=20の場合の再割り当てされる値が違ってくる

RECODE a (LO thru 20=1) (20 thru HI=2) INTO B.
RECODE a (20 thru HI=2) (LO thru 20=1) INTO C.
            (LO,HIはその変数の最小・最大値)

 ABC備考
110.001.001.00
220.001.002.00 Bは「Aが20以下(LO thru 20)」の基準が適用され1になり,Cは「Aが20以上(20 thru HI)」の基準が適用され2になる
330.002.002.00
440.002.002.00
550.002.002.00

戻る| トップへ