mirror of
https://github.com/jspsych/jsPsych.git
synced 2025-05-10 19:20:55 +00:00
implements #144
This commit is contained in:
parent
a14685f48c
commit
3ef2f16f22
@ -2,6 +2,46 @@
|
|||||||
|
|
||||||
The jsPsych.data module contains functions for interacting with the data generated by jsPsych plugins.
|
The jsPsych.data module contains functions for interacting with the data generated by jsPsych plugins.
|
||||||
|
|
||||||
|
---
|
||||||
|
## jsPsych.data.addDataToLastTrial
|
||||||
|
|
||||||
|
```
|
||||||
|
jsPsych.data.addDataToLastTrial(data)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Parameter | Type | Description
|
||||||
|
----------|------|------------
|
||||||
|
data | object | Object of key: value pairs to add to the data from the last trial.
|
||||||
|
|
||||||
|
### Return value
|
||||||
|
|
||||||
|
Returns nothing.
|
||||||
|
|
||||||
|
### Description
|
||||||
|
|
||||||
|
This method appends data to the data recorded by the last trial. It's particularly useful when combined with the `on_finish` event handler for a trial, as shown in the example below.
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
#### Evaluate a response and add to data
|
||||||
|
```javascript
|
||||||
|
var block = {
|
||||||
|
type: 'single-stim',
|
||||||
|
stimuli: ['img/happy_face_1.jpg', 'img/sad_face_1.jpg'],
|
||||||
|
choices: [89,78], // Y or N
|
||||||
|
prompt: '<p class="center-content">Have you seen this face before? Y or N.</p>',
|
||||||
|
on_finish: function(trial_data){
|
||||||
|
// let's imagine that the correct answer is NO for both trials
|
||||||
|
var correct = (trial_data.key_press == 78);
|
||||||
|
jsPsych.data.addDataToLastTrial({correct: correct});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
## jsPsych.data.addProperties
|
## jsPsych.data.addProperties
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ Every jsPsych experiment utilizes the core library (contained in the `jspsych.js
|
|||||||
|
|
||||||
### [Data module](jspsych-data.md)
|
### [Data module](jspsych-data.md)
|
||||||
|
|
||||||
|
* [jsPsych.data.addDataToLastTrial](jspsych-data.md#jspsychdataadddatatolasttrial)
|
||||||
* [jsPsych.data.addProperties](jspsych-data.md#jspsychdataaddproperties)
|
* [jsPsych.data.addProperties](jspsych-data.md#jspsychdataaddproperties)
|
||||||
* [jsPsych.data.dataAsCSV](jspsych-data.md#jspsychdatadataascsv)
|
* [jsPsych.data.dataAsCSV](jspsych-data.md#jspsychdatadataascsv)
|
||||||
* [jsPsych.data.displayData](jspsych-data.md#jspsychdatadisplaydata)
|
* [jsPsych.data.displayData](jspsych-data.md#jspsychdatadisplaydata)
|
||||||
|
@ -645,7 +645,13 @@
|
|||||||
|
|
||||||
// now add to list so that it gets appended to all future data
|
// now add to list so that it gets appended to all future data
|
||||||
dataProperties = $.extend({}, dataProperties, properties);
|
dataProperties = $.extend({}, dataProperties, properties);
|
||||||
|
};
|
||||||
|
|
||||||
|
module.addDataToLastTrial = function(data){
|
||||||
|
if(allData.length == 0){
|
||||||
|
throw new Error("Cannot add data to last trial - no data recorded so far");
|
||||||
|
}
|
||||||
|
allData[allData.length-1] = $.extend({},allData[allData.length-1],data);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.dataAsCSV = function() {
|
module.dataAsCSV = function() {
|
||||||
|
40
tests&examples/data-add-to-last-trial.html
Normal file
40
tests&examples/data-add-to-last-trial.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="js/jquery.min.js"></script>
|
||||||
|
<script src="../jspsych.js"></script>
|
||||||
|
<script src="../plugins/jspsych-single-stim.js"></script>
|
||||||
|
<link rel="stylesheet" href="../css/jspsych.css"></link>
|
||||||
|
<style>
|
||||||
|
img { width: 300px; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="jspsych-target"></div>
|
||||||
|
</body>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var block_1 = {
|
||||||
|
type: 'single-stim',
|
||||||
|
stimuli: ['img/happy_face_1.jpg', 'img/sad_face_1.jpg'],
|
||||||
|
choices: [89,78], // Y or N
|
||||||
|
prompt: '<p class="center-content">Have you seen this face before? Y or N.</p>',
|
||||||
|
on_finish: function(){
|
||||||
|
jsPsych.data.addDataToLastTrial({correct: true});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function start(){
|
||||||
|
jsPsych.init({
|
||||||
|
display_element: $('#jspsych-target'),
|
||||||
|
experiment_structure: [block_1],
|
||||||
|
on_finish: function(){
|
||||||
|
jsPsych.data.displayData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
jsPsych.preloadImages(['img/happy_face_1.jpg','img/sad_face_1.jpg'], start);
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user