ランダム化・並び替えは一口に言っても様々なパターンがありますが,目的は実験・調査に必要な任意の配列を作成することです。ここでは使用頻度が高い方法を説明していきます(徐々に追加予定)。
jsPsychの関数の方が容易にランダム化・並び替えを実行できるので,jsPsychのランダム化を行う関数であるjsPsych.randomization
を用いています。もちろん,javascriptの関数を用いたり,より一般的なループを用いた並び替えも可能ですので,お好みの方法を用いてください。ここで紹介する方法によってランダム順の配列も含め,目的の配列を生成できるため,試行の設定でランダム呈示(randomize_order: true
)にする必要はないでしょう。なお,ここではランダム化・並び替え部分のコードだけを紹介します(index.htmlでの実装は省略します)。
なお,ここで紹介していない方法として,Excelで参加者分の刺激割り当てを別途作成して,それを用いるといった力業もあるかとは思います。
公式での説明も確認しながら進めましょう。
jsPsych.randomization - jsPsych
以下のような場合に用います。
jsPsych.randomization.sampleWithoutReplacement(配列, 抽出数)
を使います。配列(wordList
)から,任意の抽出数で要素をランダムに抽出した配列(targetList
)を作成します。重複しないように抽出するので,配列の要素数以下の抽出数であれば,要素は重複しません(同じ刺激は選ばれない)。
//単語リスト
const wordList = ["one", "two", "three", "four", "five"];
//単語リストから3個をランダムに選んだターゲット語リストを作成
const targetList = jsPsych.randomization.sampleWithoutReplacement (wordList, 3);
jsPsych.randomization.sampleWithReplacement(配列, 抽出数, 重みづけ)
を使います。配列(wordList
)から,任意の抽出数で要素をランダムに抽出した配列(targetList
)を作成します。要素は重複します(同じ刺激は選ばれる可能性がある)。重みづけによって,各要素の頻度を調整できます(例では省略)。
//単語リスト
const wordList = ["one", "two", "three", "four", "five"];
//単語リストから3個をランダムに選んだターゲット語リストを作成
const targetList = jsPsych.randomization.sampleWithReplacement (wordList, 3);
ここで紹介する方法は少し複雑ですが,要因計画(実験デザイン)に基づいて任意の配列を作成する方法です。この方法を利用すると,比較的,簡単に要因に合わせた刺激リストを作成できます。ぜひ利用してみてください。