アンケートの集計
この節では,アンケートの集計を行います。
今回の例は,コンピュータに関するスキル調査です。サンプルデータはこのページの下部からダウンロードできます。質問項目は次の通り。
キーボードの「ホームポジション」を知っていますか。 ( )はい ( )いいえ
キーボードをあまり見ずに打つことができますか。 ( )はい ( )いいえ
ワープロで文書を作ったことがありますか。 ( )はい ( )いいえ
表計算ソフトで計算をしたことがありますか。 ( )はい ( )いいえ
パソコンでインターネットを使ったことがありますか。 ( )はい ( )いいえ
パソコンで新しいフォルダを作ることができますか。 ( )はい ( )いいえ
ファイルやフォルダの名前を変えることができますか。 ( )はい ( )いいえ
ファイルを別のフォルダにコピーすることができますか。 ( )はい ( )いいえ
はいなら1,いいえなら0としてデータを入力してあります。
単純集計から初めて,クロス集計もやってみましょう。
単純集計
前節同様,インデックス行とインデックス列を取り除いた,データだけのリストを data とします。
dlist=Readcsv("enquete.csv");
rown=length(dlist);
coln=length(transpose(dlist));
data=apply(dlist_(2..rown),#_(2..coln));
今回は0と1なので,単純に sum(list) で値を合計すれば1の個数が数えられます。
count=apply(1..8,sum(transpose(data)_#));
これで8項目の集計結果が,リスト count に入ります。
結果として,count は
[70,32,147,96,276,100,146,76]
となります。これを表にして画面に表示します。「はい」と「いいえ」をリストの先頭に付加して,PutcoL() でまとめて表示しましょう。
yes=prepend("はい ",count);
no=prepend("いいえ",apply(count,rown-1-#));
Yoko=[50,20,20];
Tate=apply(1..coln,10);
Tabledatalight("",Yoko,Tate,[],[0]);
PutcoL(1,"c",dlist_1);
PutcoL(2,"r",yes);
PutcoL(3,"r",no);
クロス集計
次はクロス集計です。
たとえば,「ホームポジションを知っている」人の中で,「見ないで打てる」人は何人か,「ワープロ」を使ったことのある人は何人か,・・・ といったことを調べます。
試しにひとつやってみましょう。
cross=select(data,#_1==1 & #_2==1);
println(length(cross));
を実行すると,コンソールに 15 と表示されます。
つまり,「ホームポジションを知っている」人の中で,「見ないで打てる」人は15人 ということです。
これをすべての質問項目についてやります。repeat で繰り返してリストに格納します。
cross=[];
repeat(8,s,
cr=[];
repeat(8,t,
work=select(data,#_s==1 & #_t==1);
cr=append(cr,length(work));
);
cross=append(cross,cr);
);
index=["","ホーム","見ない","ワープロ","表計算","ネット","フォルダ","リネーム","コピー"];
Yoko=[40]++apply(1..8,20);
Tate=apply(1..9,10);
Tabledatalight("",Yoko,Tate,[],[0]);
Putrow(1,"c",index);
PutcoL(1,"c",dlist_1);
repeat(8,s,
repeat(8,t,
Putcell((s+1),(t+1),"r",cross_s_t+" ");
);
);
・cross がクロス集計のリストです。
・crはcrossの1行分です。
・index は横用の質問項目のリストです。項目名を短くしました。
・repeat による繰り返しで一つ一つのセルにデータを入れています。
対角線上のセルにある数が,それぞれの項目に「はい」と答えた人数です。たとえば,ワープロを使ったことのある人147人の中で,表計算もやったことのある人は65人と読めます。
キーボードを見ないで打てる人はコンピュータを結構使っている人だと思いますが,その32人の中でファイルコピーのしかたを知っている人は19人ですから,およそ3分の2ということになります。逆に見ると,ファイルコピーのしかたを知っている人76人の中でキーボードを見ないで打てる人は19人しかいないわけです。
このように,クロス集計をすると,単純集計ではわからないことがいろいろ見えてきます。
<「KeTCindyCalc」に戻る>