No.17605 Re: 複数回答のデータ処理 【青木繁伸】 2012/10/30(Tue) 10:31
SPSS も Excel もよく知らないので,方針だけ
データは最大3個の回答が3列に入っているということですね。
ま ず,3列(A, B, C 列とする)に分かれている回答文字を一つの文字列(D列に作る)にする。Excel だと =A1&B1&C1 ですかね。次に,その文字列に "A" が含まれているかどうかをみて,含まれていれば1,含まれていなければ0を返す式 =IFERROR(MIN(SEARCH("A",D1),1),0) を E 列に作る。以下,"B", "C", "D", "E" が含まれるかどうかの式を F 列以降に作る。そしてそれらを2行目以降にコピーする。
関数は,もっと適切なものがあるのでしょうが,とりあえず。
SPSS でやる場合も同じような方針でできるでしょう。compute とか computeif を使うのかな?
それにしても,「回答が3つまでOK」とは...
No.17606 Re: 複数回答のデータ処理 【山野】 2012/10/30(Tue) 21:52
返信ありがとうございます。
にもかかわらず,私の応答が遅れすみません。
先生のアドバイスを参考にexcelなどの関数をもう一度見てみます。
tryしてみたいと思います。それでうまくいかなければまたご相談させてください。
ありがとうございました。
No.17646 Re: 複数回答のデータ処理 【山野】 2012/11/07(Wed) 12:34
再度,お願いしております。
先生からご教示いただいた方法を実行してみたのですが,すると欠損値(無回答)も0に組み込まれてしまいます。
欠損値は欠損値として残す方法はないでしょうか?
ご無理を言ってすみません。
No.17647 Re: 複数回答のデータ処理 【青木繁伸】 2012/11/07(Wed) 12:37
変数変換の「前」に,「欠損値の場合は結果を欠損値とする」をやればよいだけでしょう。
No.17656 Re: 複数回答のデータ処理 【山野】 2012/11/08(Thu) 19:24
お返事をいただきながら,お礼が遅くなりすみません。
もし,可能なら教えていただきたいのですが,excelでの欠損値処理というのが分かりません。SPSSのようにたとえば,999という数値を当てはめるということでしょうか?
し かし,欠損値に何かの数値をあてはめたとして,数値である限りでは,先生からご教示いただいた方法では,結果としては,欠損値は0=選択肢が選ばれなった として処理されてしまう気がします。すみません,あまりに初歩的なことを聞いているようで心苦しいので,もしお答えいただけるならということで構いませ ん。
No.17657 Re: 複数回答のデータ処理 【青木繁伸】 2012/11/08(Thu) 21:39
Excel に欠損値処理なんて高級なものはないでしょう。
セルに欠損値を表すと定義した特定の値があれば欠損値とするというようなことでしょう。
> 欠損値は0=選択肢が選ばれなったとして処理されてしまう気がします
やってみれば分かることですが,やり方が分からないと言うことでしょうか...
> もちろんExcelも使用します
というのなら,これくらいはできて欲しいものです。
前にも言ったけど,私は Excel なんか使わないので,もっとうまい方法があると思いますが,初歩的なやり方でちゃんと処理できます。
A 列に "A", "B", "C", "D", "E" からなる文字列
A 列が欠損値なら "*" とする(文字は何でもよい)
B 列には A 列に "A" が含まれていれば 1 含まれていなければ 0 ただし 欠損値の場合は missing とする
C 列には A 列に "B" が含まれていれば 1 含まれていなければ 0 ただし 欠損値の場合は missing とする
D 列には A 列に "C" が含まれていれば 1 含まれていなければ 0 ただし 欠損値の場合は missing とする
E 列には A 列に "D" が含まれていれば 1 含まれていなければ 0 ただし 欠損値の場合は missing とする
F 列には A 列に "E" が含まれていれば 1 含まれていなければ 0 ただし 欠損値の場合は missing とする
B2 に入れる式 =IF(A2="*","missing",IFERROR(MIN(SEARCH("A",A2),1),0))
C2 に入れる式 =IF(A2="*","missing",IFERROR(MIN(SEARCH("B",A2),1),0))
:
B3 に入れる式 =IF(A3="*","missing",IFERROR(MIN(SEARCH("A",A3),1),0))
C3 に入れる式 =IF(A3="*","missing",IFERROR(MIN(SEARCH("B",A3),1),0))
:
B4 に入れる式 =IF(A4="*","missing",IFERROR(MIN(SEARCH("A",A4),1),0))
C4 に入れる式 =IF(A4="*","missing",IFERROR(MIN(SEARCH("B",A4),1),0))
:
2行目に入れる数値をちゃんと作れば,3 行目以降はそれをコピー
A2="*","missing" の "*" は A 列で欠損値を表す文字列(何でもよいので,欠損値が空文字列で入力されているなら A2="" とする。
A2="*","missing" の "missing" は A 列が 欠損値のときに変換されるものだからなんでもよい。文字列でなくても数値でもなんでも(あとで SPSS なんかで困らないように)
そんな風にすれば,以下のように処理できるでしょう。ちゃんと関数が書けたかどうかのテストデータも処理させてちゃんとできることを確認すべし。
No.17669 Re: 複数回答のデータ処理 【山野】 2012/11/12(Mon) 22:47
ご回答ありがとうございます。
先生のご教授があって,ようやくSPSSで関数を使い,これを解決できる方法を見つけました。
Excel を含め,ソフトの関数の勉強が必要なことを実感しました。
ありがとうございます。
あまりに基本的な質問をしてしまい,すみません。
今後ともよろしくお願いします。
● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る