counterbalancing with lists


Author
Message
jm560@sussex.ac.uk
jm560@sussex.ac.uk
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 25, Visits: 208
Hi,

I have a counterbalancing problem on my visual search task I am not sure how to fix.

My task has 12 different types of trials in a block (two different target letters each in 6 possible positions). The trials must be randomly selected (which they are). The unselected other 5 locations are filled by filler letters - picked from 5 lists. Two of the filler letters are actual letters and three are small O's. The filler letters are counterbalanced with each other so there are 48 combinations each - this is done by randomly selecting the first letter and then the other lists select from list.1.currentindex.

But I made a mistake as the filler letter identity and positions are not connected to the position of the target letter (the trial). I need the filler letters to  be next to the target letter I.e if the target is in pos 1 then filler letter 1 will be in pos 2 and filler letter 2 will be in pos 3 (so they are both next to the target letter and not separated by small O filler letters). I also need the trial to be linked to the filler letter order.

So that on list s3filler1 below. Every 6th letter is presented on trial.set3X1 (also below) (so the 1st, 6th, 13th and so on) and this letter is always presented in position 2.

<list s3filler1>
/ items = (picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1,
picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1,
picture.O1, picture.M1, picture.W1, picture.O1, picture.Z1, picture.K1, picture.O1)
/ select = random
</list>

<trial set3X1>
/ ontrialbegin = [
values.valid = 0;
values.validcorrect = 0;
values.trialcount += 1]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler1.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler2.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler3.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler4.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler5.nextvalue,500);]
/ ontrialbegin = [values.fillerhpos1 = expressions.hp2]
/ ontrialbegin = [values.fillerhpos2 = expressions.hp3]
/ ontrialbegin = [values.fillerhpos3 = expressions.hp4]
/ ontrialbegin = [values.fillerhpos4 = expressions.hp5]
/ ontrialbegin = [values.fillerhpos5 = expressions.hp6]
/ ontrialbegin = [values.fillervpos1 = expressions.vp2]
/ ontrialbegin = [values.fillervpos2 = expressions.vp3]
/ ontrialbegin = [values.fillervpos3 = expressions.vp4]
/ ontrialbegin = [values.fillervpos4 = expressions.vp5]
/ ontrialbegin = [values.fillervpos5 = expressions.vp6]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.distractorX1.nextvalue,500);]
/ ontrialbegin = [values.distractor = list.distractorX1.currentvalue;]
/ ontrialbegin = [
if (contains(list.distractorX1.currentvalue, ".X")) expressions.category = "congruent"
  else if (contains(list.distractorX1.currentvalue, ".N")) expressions.category = "incongruent";
]
/ ontrialbegin = [
if (expressions.category== "congruent") values.count_congruent += 1;
  else if (expressions.category== "incongruent") values.count_incongruent += 1;
]
/ ontrialend = [trial.set3X1.resetstimulusframes(); ]
/ stimulustimes = [1=fixation; 500=sequence (fixationcover, XLD1); 600=sequence (eraser1, eraser2, eraser3, eraser4, eraser5, eraser6, eraserleft, eraserright)]
/ validresponse = ("J", "I")
/ correctresponse = ("J")
/ response = timeout(2000)
/ beginresponsetime = 500
/ ontrialend = [
if (trial.set3X1.latency >= parameters.minimum_latency)
values.valid = 1;
if (values.valid == 1) {
if (trial.set3X1.correct) {
values.validcorrect = 1;
values.sumcorrect += 1;
values.sumrt += trial.set3X1.latency
if (expressions.category == "congruent") {
values.sumcorrect_congruent += 1;
values.sumrt_congruent += trial.set3X1.latency;
list.latencies_congruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
} else {
values.sumcorrect_incongruent += 1;
values.sumrt_incongruent += trial.set3X1.latency;
list.latencies_incongruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
}
}
} ;
list.accuracy.insertitem(values.validcorrect, 1);
values.testeracc = list.accuracy.currentindex
if (expressions.category == "congruent") {
list.accuracy_congruent.insertitem(values.validcorrect, 1);
} else {
list.accuracy_incongruent.insertitem(values.validcorrect, 1);
};
]
</trial>

If there a way of using more lists to link these together?

I have attached the whole script too (with supporting files)

Thanks
Attachments
AbsoluteSizing.iqx (506 views, 8.00 KB)
SET 3.iqx (538 views, 75.00 KB)
example3.png (511 views, 1.00 KB)
H.png (537 views, 240 bytes)
K.png (529 views, 336 bytes)
M.png (525 views, 344 bytes)
M.png (511 views, 344 bytes)
N.png (471 views, 342 bytes)
Ndis.png (592 views, 384 bytes)
O.png (528 views, 331 bytes)
W.png (529 views, 355 bytes)
X.png (542 views, 339 bytes)
Xdis.png (516 views, 382 bytes)
Z.png (522 views, 254 bytes)
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
jm560@sussex.ac.uk - Monday, October 2, 2017
Hi,

I have a counterbalancing problem on my visual search task I am not sure how to fix.

My task has 12 different types of trials in a block (two different target letters each in 6 possible positions). The trials must be randomly selected (which they are). The unselected other 5 locations are filled by filler letters - picked from 5 lists. Two of the filler letters are actual letters and three are small O's. The filler letters are counterbalanced with each other so there are 48 combinations each - this is done by randomly selecting the first letter and then the other lists select from list.1.currentindex.

But I made a mistake as the filler letter identity and positions are not connected to the position of the target letter (the trial). I need the filler letters to  be next to the target letter I.e if the target is in pos 1 then filler letter 1 will be in pos 2 and filler letter 2 will be in pos 3 (so they are both next to the target letter and not separated by small O filler letters). I also need the trial to be linked to the filler letter order.

So that on list s3filler1 below. Every 6th letter is presented on trial.set3X1 (also below) (so the 1st, 6th, 13th and so on) and this letter is always presented in position 2.

<list s3filler1>
/ items = (picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1,
picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1,
picture.O1, picture.M1, picture.W1, picture.O1, picture.Z1, picture.K1, picture.O1)
/ select = random
</list>

<trial set3X1>
/ ontrialbegin = [
values.valid = 0;
values.validcorrect = 0;
values.trialcount += 1]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler1.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler2.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler3.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler4.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler5.nextvalue,500);]
/ ontrialbegin = [values.fillerhpos1 = expressions.hp2]
/ ontrialbegin = [values.fillerhpos2 = expressions.hp3]
/ ontrialbegin = [values.fillerhpos3 = expressions.hp4]
/ ontrialbegin = [values.fillerhpos4 = expressions.hp5]
/ ontrialbegin = [values.fillerhpos5 = expressions.hp6]
/ ontrialbegin = [values.fillervpos1 = expressions.vp2]
/ ontrialbegin = [values.fillervpos2 = expressions.vp3]
/ ontrialbegin = [values.fillervpos3 = expressions.vp4]
/ ontrialbegin = [values.fillervpos4 = expressions.vp5]
/ ontrialbegin = [values.fillervpos5 = expressions.vp6]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.distractorX1.nextvalue,500);]
/ ontrialbegin = [values.distractor = list.distractorX1.currentvalue;]
/ ontrialbegin = [
if (contains(list.distractorX1.currentvalue, ".X")) expressions.category = "congruent"
  else if (contains(list.distractorX1.currentvalue, ".N")) expressions.category = "incongruent";
]
/ ontrialbegin = [
if (expressions.category== "congruent") values.count_congruent += 1;
  else if (expressions.category== "incongruent") values.count_incongruent += 1;
]
/ ontrialend = [trial.set3X1.resetstimulusframes(); ]
/ stimulustimes = [1=fixation; 500=sequence (fixationcover, XLD1); 600=sequence (eraser1, eraser2, eraser3, eraser4, eraser5, eraser6, eraserleft, eraserright)]
/ validresponse = ("J", "I")
/ correctresponse = ("J")
/ response = timeout(2000)
/ beginresponsetime = 500
/ ontrialend = [
if (trial.set3X1.latency >= parameters.minimum_latency)
values.valid = 1;
if (values.valid == 1) {
if (trial.set3X1.correct) {
values.validcorrect = 1;
values.sumcorrect += 1;
values.sumrt += trial.set3X1.latency
if (expressions.category == "congruent") {
values.sumcorrect_congruent += 1;
values.sumrt_congruent += trial.set3X1.latency;
list.latencies_congruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
} else {
values.sumcorrect_incongruent += 1;
values.sumrt_incongruent += trial.set3X1.latency;
list.latencies_incongruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
}
}
} ;
list.accuracy.insertitem(values.validcorrect, 1);
values.testeracc = list.accuracy.currentindex
if (expressions.category == "congruent") {
list.accuracy_congruent.insertitem(values.validcorrect, 1);
} else {
list.accuracy_incongruent.insertitem(values.validcorrect, 1);
};
]
</trial>

If there a way of using more lists to link these together?

I have attached the whole script too (with supporting files)

Thanks

I'm not sure I understand the desired position-setup from your description, but of course you can simply put the desired positions in additional <list>s and link those to the other / existing lists as needed.

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
Dave - Monday, October 2, 2017
jm560@sussex.ac.uk - Monday, October 2, 2017
Hi,

I have a counterbalancing problem on my visual search task I am not sure how to fix.

My task has 12 different types of trials in a block (two different target letters each in 6 possible positions). The trials must be randomly selected (which they are). The unselected other 5 locations are filled by filler letters - picked from 5 lists. Two of the filler letters are actual letters and three are small O's. The filler letters are counterbalanced with each other so there are 48 combinations each - this is done by randomly selecting the first letter and then the other lists select from list.1.currentindex.

But I made a mistake as the filler letter identity and positions are not connected to the position of the target letter (the trial). I need the filler letters to  be next to the target letter I.e if the target is in pos 1 then filler letter 1 will be in pos 2 and filler letter 2 will be in pos 3 (so they are both next to the target letter and not separated by small O filler letters). I also need the trial to be linked to the filler letter order.

So that on list s3filler1 below. Every 6th letter is presented on trial.set3X1 (also below) (so the 1st, 6th, 13th and so on) and this letter is always presented in position 2.

<list s3filler1>
/ items = (picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1,
picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1,
picture.O1, picture.M1, picture.W1, picture.O1, picture.Z1, picture.K1, picture.O1)
/ select = random
</list>

<trial set3X1>
/ ontrialbegin = [
values.valid = 0;
values.validcorrect = 0;
values.trialcount += 1]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler1.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler2.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler3.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler4.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler5.nextvalue,500);]
/ ontrialbegin = [values.fillerhpos1 = expressions.hp2]
/ ontrialbegin = [values.fillerhpos2 = expressions.hp3]
/ ontrialbegin = [values.fillerhpos3 = expressions.hp4]
/ ontrialbegin = [values.fillerhpos4 = expressions.hp5]
/ ontrialbegin = [values.fillerhpos5 = expressions.hp6]
/ ontrialbegin = [values.fillervpos1 = expressions.vp2]
/ ontrialbegin = [values.fillervpos2 = expressions.vp3]
/ ontrialbegin = [values.fillervpos3 = expressions.vp4]
/ ontrialbegin = [values.fillervpos4 = expressions.vp5]
/ ontrialbegin = [values.fillervpos5 = expressions.vp6]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.distractorX1.nextvalue,500);]
/ ontrialbegin = [values.distractor = list.distractorX1.currentvalue;]
/ ontrialbegin = [
if (contains(list.distractorX1.currentvalue, ".X")) expressions.category = "congruent"
  else if (contains(list.distractorX1.currentvalue, ".N")) expressions.category = "incongruent";
]
/ ontrialbegin = [
if (expressions.category== "congruent") values.count_congruent += 1;
  else if (expressions.category== "incongruent") values.count_incongruent += 1;
]
/ ontrialend = [trial.set3X1.resetstimulusframes(); ]
/ stimulustimes = [1=fixation; 500=sequence (fixationcover, XLD1); 600=sequence (eraser1, eraser2, eraser3, eraser4, eraser5, eraser6, eraserleft, eraserright)]
/ validresponse = ("J", "I")
/ correctresponse = ("J")
/ response = timeout(2000)
/ beginresponsetime = 500
/ ontrialend = [
if (trial.set3X1.latency >= parameters.minimum_latency)
values.valid = 1;
if (values.valid == 1) {
if (trial.set3X1.correct) {
values.validcorrect = 1;
values.sumcorrect += 1;
values.sumrt += trial.set3X1.latency
if (expressions.category == "congruent") {
values.sumcorrect_congruent += 1;
values.sumrt_congruent += trial.set3X1.latency;
list.latencies_congruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
} else {
values.sumcorrect_incongruent += 1;
values.sumrt_incongruent += trial.set3X1.latency;
list.latencies_incongruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
}
}
} ;
list.accuracy.insertitem(values.validcorrect, 1);
values.testeracc = list.accuracy.currentindex
if (expressions.category == "congruent") {
list.accuracy_congruent.insertitem(values.validcorrect, 1);
} else {
list.accuracy_incongruent.insertitem(values.validcorrect, 1);
};
]
</trial>

If there a way of using more lists to link these together?

I have attached the whole script too (with supporting files)

Thanks

I'm not sure I understand the desired position-setup from your description, but of course you can simply put the desired positions in additional <list>s and link those to the other / existing lists as needed.

To clarify a bit, when you have

<list s3filler1>
/ items = (picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1,
picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1,
picture.O1, picture.M1, picture.W1, picture.O1, picture.Z1, picture.K1, picture.O1)
/ select = random
</list>

and you -- hypothetically -- want to have the 1stitem in that list be located in position #2, the 2nd in position #4,, etc. you'd define

<list s3filler1_h>
/ items = (expressions.hp2, expressions.hp4, ...)
/ select = list.s3filler1.currentindex
</list>

<list s3filler1_v>
/ items = (expressions.vp2, expressions.vp4, ...)
/ select = list.s3filler1.currentindex
</list>

with

<trial set3X1>
/ ontrialbegin = [
values.valid = 0;
values.validcorrect = 0;
values.trialcount += 1]
...
/ ontrialbegin = [values.fillerhpos1 = list.s3filler1_h.nextvalue]
...
/ ontrialbegin = [values.fillervpos1 =  list.s3filler1_v.nextvalue]
...
</trial>

Does that make it clearer?

jm560@sussex.ac.uk
jm560@sussex.ac.uk
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 25, Visits: 208
Dave - Monday, October 2, 2017
Dave - Monday, October 2, 2017
jm560@sussex.ac.uk - Monday, October 2, 2017
Hi,

I have a counterbalancing problem on my visual search task I am not sure how to fix.

My task has 12 different types of trials in a block (two different target letters each in 6 possible positions). The trials must be randomly selected (which they are). The unselected other 5 locations are filled by filler letters - picked from 5 lists. Two of the filler letters are actual letters and three are small O's. The filler letters are counterbalanced with each other so there are 48 combinations each - this is done by randomly selecting the first letter and then the other lists select from list.1.currentindex.

But I made a mistake as the filler letter identity and positions are not connected to the position of the target letter (the trial). I need the filler letters to  be next to the target letter I.e if the target is in pos 1 then filler letter 1 will be in pos 2 and filler letter 2 will be in pos 3 (so they are both next to the target letter and not separated by small O filler letters). I also need the trial to be linked to the filler letter order.

So that on list s3filler1 below. Every 6th letter is presented on trial.set3X1 (also below) (so the 1st, 6th, 13th and so on) and this letter is always presented in position 2.

<list s3filler1>
/ items = (picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1,
picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1,
picture.O1, picture.M1, picture.W1, picture.O1, picture.Z1, picture.K1, picture.O1)
/ select = random
</list>

<trial set3X1>
/ ontrialbegin = [
values.valid = 0;
values.validcorrect = 0;
values.trialcount += 1]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler1.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler2.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler3.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler4.nextvalue,500);]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.s3filler5.nextvalue,500);]
/ ontrialbegin = [values.fillerhpos1 = expressions.hp2]
/ ontrialbegin = [values.fillerhpos2 = expressions.hp3]
/ ontrialbegin = [values.fillerhpos3 = expressions.hp4]
/ ontrialbegin = [values.fillerhpos4 = expressions.hp5]
/ ontrialbegin = [values.fillerhpos5 = expressions.hp6]
/ ontrialbegin = [values.fillervpos1 = expressions.vp2]
/ ontrialbegin = [values.fillervpos2 = expressions.vp3]
/ ontrialbegin = [values.fillervpos3 = expressions.vp4]
/ ontrialbegin = [values.fillervpos4 = expressions.vp5]
/ ontrialbegin = [values.fillervpos5 = expressions.vp6]
/ ontrialbegin = [trial.set3X1.insertstimulustime(list.distractorX1.nextvalue,500);]
/ ontrialbegin = [values.distractor = list.distractorX1.currentvalue;]
/ ontrialbegin = [
if (contains(list.distractorX1.currentvalue, ".X")) expressions.category = "congruent"
  else if (contains(list.distractorX1.currentvalue, ".N")) expressions.category = "incongruent";
]
/ ontrialbegin = [
if (expressions.category== "congruent") values.count_congruent += 1;
  else if (expressions.category== "incongruent") values.count_incongruent += 1;
]
/ ontrialend = [trial.set3X1.resetstimulusframes(); ]
/ stimulustimes = [1=fixation; 500=sequence (fixationcover, XLD1); 600=sequence (eraser1, eraser2, eraser3, eraser4, eraser5, eraser6, eraserleft, eraserright)]
/ validresponse = ("J", "I")
/ correctresponse = ("J")
/ response = timeout(2000)
/ beginresponsetime = 500
/ ontrialend = [
if (trial.set3X1.latency >= parameters.minimum_latency)
values.valid = 1;
if (values.valid == 1) {
if (trial.set3X1.correct) {
values.validcorrect = 1;
values.sumcorrect += 1;
values.sumrt += trial.set3X1.latency
if (expressions.category == "congruent") {
values.sumcorrect_congruent += 1;
values.sumrt_congruent += trial.set3X1.latency;
list.latencies_congruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
} else {
values.sumcorrect_incongruent += 1;
values.sumrt_incongruent += trial.set3X1.latency;
list.latencies_incongruent.insertitem(trial.set3X1.latency, 1);
list.latencies.insertitem(trial.set3X1.latency, 1);
}
}
} ;
list.accuracy.insertitem(values.validcorrect, 1);
values.testeracc = list.accuracy.currentindex
if (expressions.category == "congruent") {
list.accuracy_congruent.insertitem(values.validcorrect, 1);
} else {
list.accuracy_incongruent.insertitem(values.validcorrect, 1);
};
]
</trial>

If there a way of using more lists to link these together?

I have attached the whole script too (with supporting files)

Thanks

I'm not sure I understand the desired position-setup from your description, but of course you can simply put the desired positions in additional <list>s and link those to the other / existing lists as needed.

To clarify a bit, when you have

<list s3filler1>
/ items = (picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1,
picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1, picture.O1, picture.M1, picture.W1, picture.O1, picture.H1, picture.Z1, picture.O1, picture.M1, picture.K1, picture.O1, picture.W1, picture.H1, picture.O1, picture.Z1, picture.K1,
picture.O1, picture.M1, picture.W1, picture.O1, picture.Z1, picture.K1, picture.O1)
/ select = random
</list>

and you -- hypothetically -- want to have the 1stitem in that list be located in position #2, the 2nd in position #4,, etc. you'd define

<list s3filler1_h>
/ items = (expressions.hp2, expressions.hp4, ...)
/ select = list.s3filler1.currentindex
</list>

<list s3filler1_v>
/ items = (expressions.vp2, expressions.vp4, ...)
/ select = list.s3filler1.currentindex
</list>

with

<trial set3X1>
/ ontrialbegin = [
values.valid = 0;
values.validcorrect = 0;
values.trialcount += 1]
...
/ ontrialbegin = [values.fillerhpos1 = list.s3filler1_h.nextvalue]
...
/ ontrialbegin = [values.fillervpos1 =  list.s3filler1_v.nextvalue]
...
</trial>

Does that make it clearer?

Yes this is great, thank you!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search