指定した複数列の欠損値を一度に取り除く方法

アンケートのデータでは、設計によっては、回答をしないことを選択することができ、結果として、回答されなかった設問が欠損値として保存されることはよくあります。

そのようなデータを使ってクロス集計表を作ると、欠損値が回答のカテゴリーの一つであるかのように表示されてしまいます。

また、欠損値がある行を取り除こうとすると、一般的には設問の数だけフィルタのステップを重ねる必要がありました。

Exploratory デスクトップのv16.2からは、2つ以上の列を選択してフィルタを開くと、ダイアログが複数の列に対応したモードに切り替わり、選択した列のうち「1列でも」条件に当てはまればよいのか、「すべての列」が当てはまる必要があるのかを指定したうえで、その行を「残す」のか「取り除く」のかを選べるようになりました。

結果として、例えば、10個の設問のいずれかに欠損値がある行を、1つのステップでまとめて取り除けます。

利用データ

今回は1行が1人のアンケート回答者を表し、職種・性別・年代・年収といった回答者の属性と、5段階評価の設問への回答を列に持つ、ブランド調査のデータを利用します。

Q1からQ10の設問には回答されていないものがあり、テーブル・ビューを見ると <NA> という欠損値が散らばっているのを確認できます。

データはこちらからダウンロードいただけます。

欠損値があるまま集計するとどうなるかを確認する

まずは、欠損値をそのままにして設問ごとのクロス集計表を作り、何が起きるのかを確認します。

チャート・ビューに移動し、チャートの タイプに「ピボットテーブル」を選択し、行 に 「年代」 を選択します。

同じ集計を設問ごとに繰り返したいので、次に「繰り返し」 に 「(複数の変数)」 を選択します。

すると「変数の選択」 のダイアログが表示されるので、「Q1_総合満足度」 から 「Q10_サイト使いやすさ」 までの10列を選択します。

「OK」 ボタンをクリックすると、設問ごとに年代別の回答者数の表が並びますが、今回は選択肢ごとの人数を見たいので、「列」 に 「(変数の値)」 を選択します。

これで、設問ごとに「年代 × 回答」のクロス集計表を作成できました。

できあがった表を見ると、1から5までの回答に加えて 「(NA)」 という列が表示され、そこにも集計値が入っています。

これは、回答されなかった欠損値が回答のカテゴリーの一つとして扱われてしまっているためです。これを避けるために、次のセクションでQ1からQ10のいずれかに欠損値がある行をまとめて取り除きます。

複数の列にまとめてフィルタをかける

テーブル・ビューに戻り、まとめてフィルタしたい列を選択します。

「Q1_総合満足度」 の列ヘッダーをクリックし、Shiftキーを押しながら 「Q10_サイト使いやすさ」 の列ヘッダーをクリックし、いずれかの列ヘッダーメニューをクリックし、「フィルタ」 から、「欠損値 (NA) でない」または、「欠損値 (NA) である」 を選択します。

すると以下の項目を含むフィルタのダイアログが表示されます。

  • 条件に当てはまる列: 「1列でも」 と 「すべての列」 のどちらかを選びます。
  • 該当する行を: 「残す」 と 「取り除く」 のどちらかを選びます。

また「この条件で行うこと」というボックスでは選択した処理内容の詳細を確認できます。

今回やりたいのは10列のうち選択した 10列のすべてが「欠損値 (NA) でない」に当てはまる行を残したいので、「条件に当てはまる列」を、「すべての列」 、 「残す」 を選択し実行します。

もし、「欠損値 (NA) でない」を選択した場合は条件に当てはまる列 に「1列でも」、該する行に「取り除く」を選択して実行することで同様の結果を得られます。

10列にまたがる条件を1つのステップでまとめて指定できました。

フィルタした結果でクロス集計表を作る

チャート・ビューに戻り、ピンを2番目の 「フィルタ」 のステップにドロップして、ピン留めの位置を移します。

すると「(NA)」 の列が無くなり、1から5までの回答だけを対象にしたクロス集計表になりました。

これで、回答が欠けている行を取り除いたうえで、設問ごとの年代別クロス集計表を作成できました。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio