さまざまな種類の要素が画面で何が発生するかを担当しますが,データストレージは参加者の応答を収集し,その行動を記録し,後で取得およびエクスポートできるように保管しておきます。 収集されたデータは,多くの出所があり,さまざまな形式をとります。異なるタイプのデータは異なる変数に分けられ,それぞれが異なるインジケーターまたはタイプのデータを保存できます。たとえば,多くの実験では,参加者が提示された刺激に応答するために必要な時間とともに,観察された行動,決定,または判断の収集が必要になります。次に,各変数は時間の経過とともに変化し,実験が進むにつれてさまざまな値をとります。新しい表示ごとに新しいデータが記録されるため,多くの場合,変数は画面ごとに変化します。 data.Store()は2つの中心的な機能を提供します。まず,各変数の最新の値で構成される実験の状態を維持します。次に,ストアは実験の全過程にわたってすべての変数の履歴をアーカイブします。 lab.jsの履歴全体は長い形式のデータセットとして表され,各変数は列に含まれ,時間の経過に伴う値は行に格納されます。すべてのデータは,コンマ区切り値(csv)ファイルとして,またはJSONシリアル化データとして,いつでもエクスポートしてさらに処理および分析できます。
生成されたデータのレコードが必要な場合,datastoreオプションを介してデータをキャプチャする必要があるコンポーネントにdata.Store()オブジェクトが渡されます。次に,このコンポーネントは,終了時に(特に指示がない限り)内部データをストアにコミットします。フロー制御コンポーネントは,この設定をネストされたコンポーネントに自動的に渡します(handMeDownsを参照)。 したがって,データストアを使用する最も簡単な方法は次のとおりです。
// Create a new DataStore
const ds = new lab.data.Store()
const screen = new lab.html.Screen({
content: 'Some information to display',
// DataStore to send data to
datastore: ds,
// Additional variables to be recorded
data: {
'variable': 'value'
},
// The response will be saved automatically
responses: {
'keypress(Space)': 'done'
}
})
これにより,画面によって収集されたデータが新しく作成されたデータストアに記録されます。さらに,値valueは列変数に配置されます。 保存されたデータは,たとえば次のように,実験中に後でアクセスできます。
// Download the data after the screen
// has run its course.
screen.on('end', () => ds.download())
screen.run()
彼のコマンドシーケンスは画面を実行し,完了時にdata.Store()に対してdownload()メソッドを実行します。この時点で,データを含むcsvファイルがダウンロード用に提供されます。その他の方法とオプションを以下に示します。
変数または変数のセットの値を設定する set()メソッドは,最初の引数で指定された名前を持つ変数に含まれる値を割り当てます。
ds.set('condition', 'control')
または,オブジェクトが最初の引数として渡される場合,複数の変数を同時に設定できます。
ds.set({
'condition': 'control',
'color': 'red'
})
変数の現在の値を取得する 指定された名前の変数の最新の値を返します。
現在の変数セットをストレージにコミットします このメソッドは,変数の現在の状態を表形式の長期保存にコミットします。最後のコミット以降に変更された変数は,データセットの新しい行に格納されます。 さらに,キーと値パラメーターを介して渡された値は,これが行われる前にデータセットに追加されます。引数はset()メソッドと同様に扱われます。