データ読み込み の後には前処理といって,分析前に不要なデータを削除したり,整えたりします。ここでの重要なルールはローデータと解析用データを分けるということです。lab.jsから出力されたローデータとは別途,解析用データを用意してください。ローデータを複製してもよいですし,SQLiteやJSONであれば,csvに変換した方を扱ってもよいでしょう。ローデータは必ずバックアップを取った上で保存しておきましょう。ab.jsのデータを前処理するにあたって,lab.jsのデータ構造をある程度把握しておくことが大事です。lab.jsの出力データはLong型と呼ばれるデータ構造になっていますプログラムの進行に伴って1行ずつデータが出力されていきます。まず,データ構造の種類について紹介し,lab.jsデータの前処理についてExcelでの方法とR(Rstudioを使います)での方法を紹介します。操作がすべての履歴残るという点で分析の透明性が確保できるため,できればRで前処理や分析を行った方がよいかとは思います。Long型やWide型についてご存じの方は,データ構造の説明については飛ばしていただいてもかまいません。ここでは主にオフラインでデータ収集をした場合の前処理について紹介しますが,オンラインで取得したデータでも読み込みができていれば,同様かと思います。ただ,オンラインの場合は読み込みと同時に前処理をしてしまえばよいかと思います(参考:データ読み込み ) なお,実験や調査のプログラムの作成方法によって出力されるデータ構造は大きく異なる可能性があります。そのため,ここで紹介する方法を”そのまま"適用してもうまく行かないかもしれません。ですので,なぜ,どのように行うのか,という手法に着目し分析したいデータに合わせて柔軟に応用していただければ幸いです。
データ構造とは,どのような形式でデータが保存(格納)されているかを意味します。データ構造には様々な分類がありますが,lab.jsに関連する分類としてWide型とLong型があります。実際に見てみましょう。このデータは,評定課題(多肢選択・Page使用) のように,画像に対する評定を行った2名分の架空データです(実際のlab.jsのデータ構造ではなく,Wide型とLong型の説明用です)。ほぼ同一の内容をWide型とLong型で以下に示しています。
Wide型 Wide型では,列名に見出しを与え,参加者番号(ID),年齢(Age),それぞれの画像名(1.jpg〜4.jpg)についての各参加者のデータを格納しています。特徴的なのは,1名につき,1行を割り当てるという点で,出力するデータ数が増えれば増えるほど,横に広がっていきます。
Long型 一方で,Long型は,列名に見出しを与える点はWide型と同様ですが,参加者の横ではなく,縦に並べています。参加者番号(ID)を繰り返し表記することで,どこまでが1名分のデータかを示しています。データ数が増えると,縦に伸びていく特徴がありますが,データの種類が増えると横にも伸びていく場合もあります。
直感的にはWide型の方が我々人間には理解しやすいかと思います。1名分が1行なので全体的な傾向を掴むことが容易です。一方で,Wide型では見出しが何を示しているのかが不明な事態が起こります。画像評定課題のデータであることを知っていれば,Wide型のデータが何を意味するのかはわかりますが,データだけでは,画像ファイルと値が何を意味するのかわかりません。一方で,Long型はデータが冗長になりやすいため,我々には理解がしにくいですね。しかし,変数ごとに見出しが与えられているため,どのような変数が格納されているのかはわかります。コンピュータはWide型よりもLong型の処理が得意です。
さて,もう少し,Long型の話を進めます。一般に実験にせよ,調査にせよ,プログラムは時間や反応とともに段々と進行していきます。多くのプログラムでは時間情報(各処理の開始時間など)も含んで,データを段々と出力します。このような場合,Wide型では1名につき1行であるため,時間情報をうまく格納することができません。したがって,プログラムの出力としてはLong型の方が適しています。実際に大半の実験プログラムでデータはLong型で格納されます。先に述べたようにlab.jsの出力もLong型ですので,ここまでで説明したLong型の特徴を覚えておきましょう。
では,ここからlab.jsデータの前処理について説明します。lab.jsのデータはLong型なのでデータが良くも悪くも膨大(冗長)であるという点が特徴です。したがって,前処理としてやるべきことは不要なデータを取り除いていき,データ構造を整理するという作業になります。ここで,データの前処理を練習するためにlab.jsのデータを用意しました。評定課題(多肢選択・Page使用) に事前説明・インフォームドコンセントの取得,デモグラフィック変数の測定,参加者番号の追加を加えたプログラム(以下のコード)を作成し,オフラインで実施した2名分のデータです。事前説明・インフォームドコンセントの取得については事前説明とインフォームドコンセントの取得 を,参加者番号の付与は参加者番号をデータのすべての行に入れたい を参考にしてください。
デモデータは以下です。~~それぞれ,右クリックして保存(ダウンロード)してください。~~左クリックで開くとダウンロードできます(ダウンロードできない場合は,左クリックで開いた後に右クリックで「別名で保存」してください)。
データ読み込み を参考に,ExcelもしくはRでデータを1名分読み込んでください。Excelでは,適切な方法で読み込まないと文字化けするので注意しましょう。以下は一度,テキストエディタ(メモ帳など)を経由してExcelで開いた場合の画面です。
以下がRstudioでread_csv()
を用いて読み込んだ場合の画面です。Rstudioで読み込む場合はテキストエディタを経由する必要はありません。Rstudioでは空白列に対して警告が表示されています。