Millisecond Forums

yoked design

https://forums.millisecond.com/Topic31950.aspx

By lir1995 - 7/15/2021

Hi, 

I want to create an experiment such that the stimuli one participant sees are based off of a previous participants button responses. For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

Let me know if I should clarify more.

Thanks!
By Dave - 7/15/2021

lir1995 - 7/15/2021
Hi, 

I want to create an experiment such that the stimuli one participant sees are based off of a previous participants button responses. For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

Let me know if I should clarify more.

Thanks!

> For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

If you want that to happen immediately and automatically, e.g. on the web, no. If there's enough time for you to put the responses logged for participant A into a usable format (i.e. proper Inquisit syntax), yes. The list of stimuli or positions derived from participant A's responses you can then load into the script for participant B by making use of (conditional) <include> elements. See e.g. https://www.millisecond.com/forums/Topic19045.aspx or https://www.millisecond.com/forums/Topic20057.aspx .

By lir1995 - 7/15/2021

Dave - 7/15/2021
lir1995 - 7/15/2021
Hi, 

I want to create an experiment such that the stimuli one participant sees are based off of a previous participants button responses. For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

Let me know if I should clarify more.

Thanks!

> For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

If you want that to happen immediately and automatically, e.g. on the web, no. If there's enough time for to put the responses logged for participant A into a usable format (i.e. proper Inquisit syntax), yes. The list of stimuli or positions derived from participant A's responses you can then load into the script for participant B by making use of (conditional) <include> elements. See e.g. https://www.millisecond.com/forums/Topic19045.aspx or https://www.millisecond.com/forums/Topic20057.aspx .


Thanks!
By Dave - 7/15/2021

lir1995 - 7/15/2021
Dave - 7/15/2021
lir1995 - 7/15/2021
Hi, 

I want to create an experiment such that the stimuli one participant sees are based off of a previous participants button responses. For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

Let me know if I should clarify more.

Thanks!

> For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

If you want that to happen immediately and automatically, e.g. on the web, no. If there's enough time for to put the responses logged for participant A into a usable format (i.e. proper Inquisit syntax), yes. The list of stimuli or positions derived from participant A's responses you can then load into the script for participant B by making use of (conditional) <include> elements. See e.g. https://www.millisecond.com/forums/Topic19045.aspx or https://www.millisecond.com/forums/Topic20057.aspx .


Thanks!

You can also have the "A" script prepare some of the formatting work for you. For example, the below code


<values>
/ itemnumbers = ""
/ positions = ""
</values>

<expt>
/ onexptend = [
    values.itemnumbers = substring(values.itemnumbers, 1, length(values.itemnumbers));
    values.itemnumbers = concat(concat("<list itemlist> /items=(", values.itemnumbers), ") /selectionmode=random </list>");
    values.positions = substring(values.positions, 1, length(values.positions));
    values.positions = concat(concat("<list positionlist> /items=(", values.positions), ") /selectionmode=list.itemlist.currentindex </list>");
]
/ blocks = [1 = myblock]
</expt>

<block myblock>
/ trials = [1-4 = mytrial]
</block>

<trial mytrial>
/ ontrialend = [
    if (trial.mytrial.response == 203){
        values.positions = concat(concat(values.positions, ","), "25%");
    } else if (trial.mytrial.response == 205) {
        values.positions = concat(concat(values.positions, ","), "75%");
    };
    values.itemnumbers = concat(concat(values.itemnumbers, ","), text.mytext.currentindex);
]

/ stimulusframes = [1=mytext]
/ validresponse = (203, 205)
</trial>

<text mytext>
/ items = ("A", "B", "C", "D")
</text>

<summarydata>
/ columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid
    values.itemnumbers, values.positions)
</summarydata>



will write out the item numbers presented and the position indicated for each per the response given formatted as two paired <list> elements



which you could then just copy / paste into a template for use with <include>.

By lir1995 - 7/15/2021

Dave - 7/15/2021
lir1995 - 7/15/2021
Dave - 7/15/2021
lir1995 - 7/15/2021
Hi, 

I want to create an experiment such that the stimuli one participant sees are based off of a previous participants button responses. For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

Let me know if I should clarify more.

Thanks!

> For example, if participant 1 chose the left button, participant 2 would see an image on the left side of the screen to also choose left. Is it possible to save out the responses from one participant from the data file to then use to create unique stimulus lists (or just positions on the screen for a given stimulus).

If you want that to happen immediately and automatically, e.g. on the web, no. If there's enough time for to put the responses logged for participant A into a usable format (i.e. proper Inquisit syntax), yes. The list of stimuli or positions derived from participant A's responses you can then load into the script for participant B by making use of (conditional) <include> elements. See e.g. https://www.millisecond.com/forums/Topic19045.aspx or https://www.millisecond.com/forums/Topic20057.aspx .


Thanks!

You can also have the "A" script prepare some of the formatting work for you. For example, the below code


<values>
/ itemnumbers = ""
/ positions = ""
</values>

<expt>
/ onexptend = [
    values.itemnumbers = substring(values.itemnumbers, 1, length(values.itemnumbers));
    values.itemnumbers = concat(concat("<list itemlist> /items=(", values.itemnumbers), ") /selectionmode=random </list>");
    values.positions = substring(values.positions, 1, length(values.positions));
    values.positions = concat(concat("<list positionlist> /items=(", values.positions), ") /selectionmode=list.itemlist.currentindex </list>");
]
/ blocks = [1 = myblock]
</expt>

<block myblock>
/ trials = [1-4 = mytrial]
</block>

<trial mytrial>
/ ontrialend = [
    if (trial.mytrial.response == 203){
        values.positions = concat(concat(values.positions, ","), "25%");
    } else if (trial.mytrial.response == 205) {
        values.positions = concat(concat(values.positions, ","), "75%");
    };
    values.itemnumbers = concat(concat(values.itemnumbers, ","), text.mytext.currentindex);
]

/ stimulusframes = [1=mytext]
/ validresponse = (203, 205)
</trial>

<text mytext>
/ items = ("A", "B", "C", "D")
</text>

<summarydata>
/ columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid
    values.itemnumbers, values.positions)
</summarydata>



will write out the item numbers presented and the position indicated for each per the response given formatted as two paired <list> elements



which you could then just copy / paste into a template for use with <include>.


Wow, thank you! This is extremely helpful!