Setting stimuli set at block level, as opposed to trial level


Author
Message
sdandeneau
sdandeneau
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 37, Visits: 141
I'm running a task that requires counterbalancing stimuli sets across participants. Ex. Part. 1 gets. set 1 for bloc 1 and set 2 for block 2, whereas Part. 2 get set 2 for bloc 1 and set 1 for block 2. 

My question: instead of creating trial1 and trial 2 - and block 1(which runs trial 1) and block 2 (which runs bloc 2). Both trials are the same the blocks... the only difference is that stimuli used to run the trial. Is it possible to define the Trial once, but in the Block defining the stimuli set that should be used to run the trial?

Something like: 
<block 1>
/ trials = [1-4=trial]
/ values.stimuliset = 1
</block>

<block 2>
/ trials = [1-4=trial]
/ values.stimuliset = 2
</block>

Thanks in advance
Stéphane
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
sdandeneau - Thursday, February 9, 2017
I'm running a task that requires counterbalancing stimuli sets across participants. Ex. Part. 1 gets. set 1 for bloc 1 and set 2 for block 2, whereas Part. 2 get set 2 for bloc 1 and set 1 for block 2. 

My question: instead of creating trial1 and trial 2 - and block 1(which runs trial 1) and block 2 (which runs bloc 2). Both trials are the same the blocks... the only difference is that stimuli used to run the trial. Is it possible to define the Trial once, but in the Block defining the stimuli set that should be used to run the trial?

Something like: 
<block 1>
/ trials = [1-4=trial]
/ values.stimuliset = 1
</block>

<block 2>
/ trials = [1-4=trial]
/ values.stimuliset = 2
</block>

Thanks in advance
Stéphane

Yes, you can achieve that by using nested <list> elements:

//counterbalancing:
//set 1 first
<expt>
/ subjects = (1 of 2)
/ groupassignment = groupnumber
/ blocks = [1=set1; 2=set2]
</expt>

//set 2 first
<expt>
/ subjects = (2 of 2)
/ groupassignment = groupnumber
/ blocks = [1=set2; 2=set1]
</expt>

<block set1>
/ onblockbegin = [values.set = 1]
/ trials = [1-4=mytrial]
</block>

<block set2>
/ onblockbegin = [values.set = 2]
/ trials = [1-4=mytrial]
</block>

<trial mytrial>
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<text mytext>
/ items = myitems
/ select = list.setlist.nextvalue
</text>

<item myitems>
/ 1 = "Set 1 Item 1"
/ 2 = "Set 1 Item 2"
/ 3 = "Set 1 Item 3"
/ 4 = "Set 1 Item 4"

/ 5 = "Set 2 Item 1"
/ 6 = "Set 2 Item 2"
/ 7 = "Set 2 Item 3"
/ 8 = "Set 2 Item 4"
</item>

//list of lists returns an item number fromt the set list indicated by values.set
<list setlist>
/ items = (list.set1items.nextvalue, list.set2items.nextvalue)
/ selectionmode = values.set
</list>

//set 1 are item numbers 1 to 4
<list set1items>
/ items = (1,2,3,4)
</list>

//set 2 are item numbers 5 to 8
<list set2items>
/ items = (5,6,7,8)
</list>

<values>
/ set = 1
</values>



Edited 7 Years Ago by Dave
sdandeneau
sdandeneau
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 37, Visits: 141
Dave - Thursday, February 9, 2017
sdandeneau - Thursday, February 9, 2017
I'm running a task that requires counterbalancing stimuli sets across participants. Ex. Part. 1 gets. set 1 for bloc 1 and set 2 for block 2, whereas Part. 2 get set 2 for bloc 1 and set 1 for block 2. 

My question: instead of creating trial1 and trial 2 - and block 1(which runs trial 1) and block 2 (which runs bloc 2). Both trials are the same the blocks... the only difference is that stimuli used to run the trial. Is it possible to define the Trial once, but in the Block defining the stimuli set that should be used to run the trial?

Something like: 
<block 1>
/ trials = [1-4=trial]
/ values.stimuliset = 1
</block>

<block 2>
/ trials = [1-4=trial]
/ values.stimuliset = 2
</block>

Thanks in advance
Stéphane

Yes, you can achieve that by using nested <list> elements:

//counterbalancing:
//set 1 first
<expt>
/ subjects = (1 of 2)
/ groupassignment = groupnumber
/ blocks = [1=set1; 2=set2]
</expt>

//set 2 first
<expt>
/ subjects = (2 of 2)
/ groupassignment = groupnumber
/ blocks = [1=set2; 2=set1]
</expt>

<block set1>
/ onblockbegin = [values.set = 1]
/ trials = [1-4=mytrial]
</block>

<block set2>
/ onblockbegin = [values.set = 2]
/ trials = [1-4=mytrial]
</block>

<trial mytrial>
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<text mytext>
/ items = myitems
/ select = list.setlist.nextvalue
</text>

<item myitems>
/ 1 = "Set 1 Item 1"
/ 2 = "Set 1 Item 2"
/ 3 = "Set 1 Item 3"
/ 4 = "Set 1 Item 4"

/ 5 = "Set 2 Item 1"
/ 6 = "Set 2 Item 2"
/ 7 = "Set 2 Item 3"
/ 8 = "Set 2 Item 4"
</item>

//list of lists returns an item number fromt the set list indicated by values.set
<list setlist>
/ items = (list.set1items.nextvalue, list.set2items.nextvalue)
/ selectionmode = values.set
</list>

//set 1 are item numbers 1 to 4
<list set1items>
/ items = (1,2,3,4)
</list>

//set 2 are item numbers 5 to 8
<list set2items>
/ items = (5,6,7,8)
</list>

<values>
/ set = 1
</values>



Thanks! That'll do the trick for me!


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search