Creating a randomized list and storing it


Author
Message
b_randon
b_randon
Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)
Group: Forum Members
Posts: 7, Visits: 19
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



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
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



b_randon
b_randon
Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)
Group: Forum Members
Posts: 7, Visits: 19
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

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
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

<block setup>
/ trials = [1-50 = noreplace(high_setup, low_setup)]
</block>

<trial high_setup>
/ ontrialbegin = [
  list.high_order.appenditem(list.highlist.nextindex);
    list.trial_order.appenditem(trial.show_high);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial low_setup>
/ ontrialbegin = [
  list.low_order.appenditem(list.lowlist.nextindex);
    list.trial_order.appenditem(trial.show_low);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list highlist>
/ poolsize = 25
</list>

<list lowlist>
/ poolsize = 25
</list>

<list trial_order>
/ selectionmode = sequence
</list>

<list high_order>
/ select = sequence
</list>

<list low_order>
/ select = sequence
</list>

<text high_word>
/ items = high_list
/ select = list.high_order.nextvalue
</text>

<text low_word>
/ items = low_list
/ select = list.low_order.nextvalue
</text>

<trial show_high>
/ stimulusframes = [1=high_word]
/ trialduration = 1000
</trial>

<trial show_low>
/ stimulusframes = [1=low_word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-50 = list.trial_order]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-50 = list.trial_order]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-50 = list.trial_order]
</block>

<page apage>
^first round
</page>

<page bpage>
^second round
</page>

<page cpage>
^third round
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>
b_randon
b_randon
Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)
Group: Forum Members
Posts: 7, Visits: 19
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

<block setup>
/ trials = [1-50 = noreplace(high_setup, low_setup)]
</block>

<trial high_setup>
/ ontrialbegin = [
  list.high_order.appenditem(list.highlist.nextindex);
    list.trial_order.appenditem(trial.show_high);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial low_setup>
/ ontrialbegin = [
  list.low_order.appenditem(list.lowlist.nextindex);
    list.trial_order.appenditem(trial.show_low);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list highlist>
/ poolsize = 25
</list>

<list lowlist>
/ poolsize = 25
</list>

<list trial_order>
/ selectionmode = sequence
</list>

<list high_order>
/ select = sequence
</list>

<list low_order>
/ select = sequence
</list>

<text high_word>
/ items = high_list
/ select = list.high_order.nextvalue
</text>

<text low_word>
/ items = low_list
/ select = list.low_order.nextvalue
</text>

<trial show_high>
/ stimulusframes = [1=high_word]
/ trialduration = 1000
</trial>

<trial show_low>
/ stimulusframes = [1=low_word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-50 = list.trial_order]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-50 = list.trial_order]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-50 = list.trial_order]
</block>

<page apage>
^first round
</page>

<page bpage>
^second round
</page>

<page cpage>
^third round
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>

Hey Dave! Thank you again for your help with this. From my understanding, this does a fantastic job of compiling a new list from equal proportions of the low and high list. As I've been playing around with the code, could you explain exactly what "trial_order" is saving? When I run the code, I'm not getting an exact repetition of the new list so I'm assuming it might be recording whether words came from the low or high list or saving the pattern of low_word and high_word picks in setup?  What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

Thank you!!



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

> What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

That is exactly what the code in my previous reply does and I don't know why you think otherwise. See for yourself, a data file from one such run is attached. The order of trials and words is exactly the same in all three blocks.

The trial_order list, as the name suggests, saves the order of trials generated during the setup block. That same order, then, is simply reproduced in blocks A to C.
The high_order and low_order lists save and reproduce the order of the high and low words generated during the setup block respectively.

Attachments
Edited 3 Years Ago by Dave
b_randon
b_randon
Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)Associate Member (108 reputation)
Group: Forum Members
Posts: 7, Visits: 19
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

<block setup>
/ trials = [1-50 = noreplace(high_setup, low_setup)]
</block>

<trial high_setup>
/ ontrialbegin = [
  list.high_order.appenditem(list.highlist.nextindex);
    list.trial_order.appenditem(trial.show_high);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial low_setup>
/ ontrialbegin = [
  list.low_order.appenditem(list.lowlist.nextindex);
    list.trial_order.appenditem(trial.show_low);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list highlist>
/ poolsize = 25
</list>

<list lowlist>
/ poolsize = 25
</list>

<list trial_order>
/ selectionmode = sequence
</list>

<list high_order>
/ select = sequence
</list>

<list low_order>
/ select = sequence
</list>

<text high_word>
/ items = high_list
/ select = list.high_order.nextvalue
</text>

<text low_word>
/ items = low_list
/ select = list.low_order.nextvalue
</text>

<trial show_high>
/ stimulusframes = [1=high_word]
/ trialduration = 1000
</trial>

<trial show_low>
/ stimulusframes = [1=low_word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-50 = list.trial_order]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-50 = list.trial_order]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-50 = list.trial_order]
</block>

<page apage>
^first round
</page>

<page bpage>
^second round
</page>

<page cpage>
^third round
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>

Hey Dave! Thank you again for your help with this. From my understanding, this does a fantastic job of compiling a new list from equal proportions of the low and high list. As I've been playing around with the code, could you explain exactly what "trial_order" is saving? When I run the code, I'm not getting an exact repetition of the new list so I'm assuming it might be recording whether words came from the low or high list or saving the pattern of low_word and high_word picks in setup?  What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

Thank you!!



b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

<block setup>
/ trials = [1-50 = noreplace(high_setup, low_setup)]
</block>

<trial high_setup>
/ ontrialbegin = [
  list.high_order.appenditem(list.highlist.nextindex);
    list.trial_order.appenditem(trial.show_high);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial low_setup>
/ ontrialbegin = [
  list.low_order.appenditem(list.lowlist.nextindex);
    list.trial_order.appenditem(trial.show_low);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list highlist>
/ poolsize = 25
</list>

<list lowlist>
/ poolsize = 25
</list>

<list trial_order>
/ selectionmode = sequence
</list>

<list high_order>
/ select = sequence
</list>

<list low_order>
/ select = sequence
</list>

<text high_word>
/ items = high_list
/ select = list.high_order.nextvalue
</text>

<text low_word>
/ items = low_list
/ select = list.low_order.nextvalue
</text>

<trial show_high>
/ stimulusframes = [1=high_word]
/ trialduration = 1000
</trial>

<trial show_low>
/ stimulusframes = [1=low_word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-50 = list.trial_order]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-50 = list.trial_order]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-50 = list.trial_order]
</block>

<page apage>
^first round
</page>

<page bpage>
^second round
</page>

<page cpage>
^third round
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>

Hey Dave! Thank you again for your help with this. From my understanding, this does a fantastic job of compiling a new list from equal proportions of the low and high list. As I've been playing around with the code, could you explain exactly what "trial_order" is saving? When I run the code, I'm not getting an exact repetition of the new list so I'm assuming it might be recording whether words came from the low or high list or saving the pattern of low_word and high_word picks in setup?  What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

Thank you!!



> What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

That is exactly what the code in my previous reply does and I don't know why you think otherwise. See for yourself, a data file from one such run is attached. The order of trials and words is exactly the same in all three blocks.

Ahh okay then I must have messed something up and will give it a go again. Thank you again!!

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
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

<block setup>
/ trials = [1-50 = noreplace(high_setup, low_setup)]
</block>

<trial high_setup>
/ ontrialbegin = [
  list.high_order.appenditem(list.highlist.nextindex);
    list.trial_order.appenditem(trial.show_high);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial low_setup>
/ ontrialbegin = [
  list.low_order.appenditem(list.lowlist.nextindex);
    list.trial_order.appenditem(trial.show_low);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list highlist>
/ poolsize = 25
</list>

<list lowlist>
/ poolsize = 25
</list>

<list trial_order>
/ selectionmode = sequence
</list>

<list high_order>
/ select = sequence
</list>

<list low_order>
/ select = sequence
</list>

<text high_word>
/ items = high_list
/ select = list.high_order.nextvalue
</text>

<text low_word>
/ items = low_list
/ select = list.low_order.nextvalue
</text>

<trial show_high>
/ stimulusframes = [1=high_word]
/ trialduration = 1000
</trial>

<trial show_low>
/ stimulusframes = [1=low_word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-50 = list.trial_order]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-50 = list.trial_order]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-50 = list.trial_order]
</block>

<page apage>
^first round
</page>

<page bpage>
^second round
</page>

<page cpage>
^third round
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>

Hey Dave! Thank you again for your help with this. From my understanding, this does a fantastic job of compiling a new list from equal proportions of the low and high list. As I've been playing around with the code, could you explain exactly what "trial_order" is saving? When I run the code, I'm not getting an exact repetition of the new list so I'm assuming it might be recording whether words came from the low or high list or saving the pattern of low_word and high_word picks in setup?  What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

Thank you!!



b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Dave - 1/18/2021
b_randon - 1/18/2021
Hey everyone! So I'm coding a memory experiment, during the encoding task I want to present 50 words to a participant and repeat those 50 words in the same order they were originally presented 2 more times. The 50 presented words are taken from two lists equally, so 25 words from "List 1" and 25 words from "List 2" in random and mixed order. My goal of achieving this is to populate an empty list at the beginning of the experiment with the randomly selected words from each list mixed together and present that three times to the participant. I have no idea how to do this correctly and have done some searching, but I haven't found anything that has helped me do this, but I think this is completely possible. Thank you for any and all help!

 



Here's an example with 10 words per list, assembled into a list of 10 random selections (5 from list 1, 5 from list 2).

<block setup>
/ trials = [1-10 = noreplace(list1, list2)]
</block>

<trial list1>
/ ontrialbegin = [
    list.selection.appenditem(list.list1.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial list2>
/ ontrialbegin = [
    list.selection.appenditem(list.list2.nextvalue);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list list1>
/ items = (1,2,3,4,5,6,7,8,9,10)
</list>

<list list2>
/ items = (11,12,13,14,15,16,17,18,19,20)
</list>

// will hold the randomly assembled item numbers
// 5 from list 1
// 5 from list 2
<list selection>
/ select = sequence
</list>


// list 1: items 1 to 10
// list 2: items 11 to 20
<item allitems>
/ 1 = "List 1 Item 1"
/ 2 = "List 1 Item 2"
/ 3 = "List 1 Item 3"
/ 4 = "List 1 Item 4"
/ 5 = "List 1 Item 5"
/ 6 = "List 1 Item 6"
/ 7 = "List 1 Item 7"
/ 8 = "List 1 Item 8"
/ 9 = "List 1 Item 9"
/ 10 = "List 1 Item 10"

/ 11 = "List 2 Item 1"
/ 12 = "List 2 Item 2"
/ 13 = "List 2 Item 3"
/ 14 = "List 2 Item 4"
/ 15 = "List 2 Item 5"
/ 16 = "List 2 Item 6"
/ 17 = "List 2 Item 7"
/ 18 = "List 2 Item 8"
/ 19 = "List 2 Item 9"
/ 20 = "List 2 Item 10"
</item>

<text word>
/ items = allitems
/ select = list.selection.nextvalue
</text>

<trial showword>
/ stimulusframes = [1=word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-10 = showword]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-10 = showword]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-10 = showword]
</block>

<page apage>
^first round of 10 selected words
</page>

<page bpage>
^second round of 10 selected words
</page>

<page cpage>
^third round of 10 selected words
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>



Hi Dave! Thank you for your response. I'm a little bit confused about how to plug everything in, would you be able to help with the provided two example lists I have below. My apologies for asking you to repeat yourself, I'm a bit new to working with Inquisit. 

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

Should I change these from item elements to a list element? Again, I want to randomly select every item from both lists with no repeats and add them into a new list that I will then use to present to participants three times. Thank you for your help.

<item high_list>
/1 = "lumber"
/2 = "meantime"
/3 = "cherry"
/4 = "powder"
/5 = "beaver"
/6 = "campaign"
/7 = "party"
/8 = "product"
/9 = "canvas"
/10 = "island"
/11 = "dinner"
/12 = "senate"
/13 = "tiger"
/14 = "temple"
/15 = "bushel"
/16 = "meadow"
/17 = "liquid"
/18 = "status"
/19 = "contents"
/20 = "metal"
/21 = "autumn"
/22 = "judgment"
/23 = "marble"
/24 = "father"
/25 = "spirit"
</item>

<item low_list>
/1 = "mayor"
/2 = "goodbye"
/3 = "artist"
/4 = "traffic"
/5 = "opera"
/6 = "double"
/7 = "motion"
/8 = "standard"
/9 = "feature"
/10 = "dragon"
/11 = "legend"
/12 = "husband"
/13 = "bedroom"
/14 = "oven"
/15 = "career"
/16 = "culture"
/17 = "service"
/18 = "section"
/19 = "pasture"
/20 = "receipt"
/21 = "college"
/22 = "eagle"
/23 = "single"
/24 = "effort"
/25 = "orange"
</item>

<block setup>
/ trials = [1-50 = noreplace(high_setup, low_setup)]
</block>

<trial high_setup>
/ ontrialbegin = [
  list.high_order.appenditem(list.highlist.nextindex);
    list.trial_order.appenditem(trial.show_high);
]
/ trialduration = 0
/ recorddata = false
</trial>

<trial low_setup>
/ ontrialbegin = [
  list.low_order.appenditem(list.lowlist.nextindex);
    list.trial_order.appenditem(trial.show_low);
]
/ trialduration = 0
/ recorddata = false
</trial>

<list highlist>
/ poolsize = 25
</list>

<list lowlist>
/ poolsize = 25
</list>

<list trial_order>
/ selectionmode = sequence
</list>

<list high_order>
/ select = sequence
</list>

<list low_order>
/ select = sequence
</list>

<text high_word>
/ items = high_list
/ select = list.high_order.nextvalue
</text>

<text low_word>
/ items = low_list
/ select = list.low_order.nextvalue
</text>

<trial show_high>
/ stimulusframes = [1=high_word]
/ trialduration = 1000
</trial>

<trial show_low>
/ stimulusframes = [1=low_word]
/ trialduration = 1000
</trial>

<block a>
/ preinstructions = (apage)
/ trials = [1-50 = list.trial_order]
</block>

<block b>
/ preinstructions = (bpage)
/ trials = [1-50 = list.trial_order]
</block>

<block c>
/ preinstructions = (cpage)
/ trials = [1-50 = list.trial_order]
</block>

<page apage>
^first round
</page>

<page bpage>
^second round
</page>

<page cpage>
^third round
</page>

<expt>
/ blocks = [1=setup; 2=a; 3=b; 4=c]
</expt>

Hey Dave! Thank you again for your help with this. From my understanding, this does a fantastic job of compiling a new list from equal proportions of the low and high list. As I've been playing around with the code, could you explain exactly what "trial_order" is saving? When I run the code, I'm not getting an exact repetition of the new list so I'm assuming it might be recording whether words came from the low or high list or saving the pattern of low_word and high_word picks in setup?  What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

Thank you!!



> What I would like to save is the exact temporal order of the new mixed list. For example, during the first round, if "dog", "castle", "orange", and "cat" were presented in that order, I would need that specific temporal order saved as well as if it was originally from the low or high list. So if "dog", "castle", "orange", and "cat" is the first presentation order in block A, then that exact presentation order will be repeated in blocks B and C as well.

That is exactly what the code in my previous reply does and I don't know why you think otherwise. See for yourself, a data file from one such run is attached. The order of trials and words is exactly the same in all three blocks.

Ahh okay then I must have messed something up and will give it a go again. Thank you again!!

The trial_order list, as the name suggests, saves the order of trials generated during the setup block. That same order, then, is simply reproduced in blocks A to C.
The high_order and low_order lists save and reproduce the order of the high and low words generated during the setup block respectively.
All three are needed to fully reproduce the trial and item sequence generated.



Edited 3 Years Ago by Dave
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search