Millisecond Forums

noreplacenorepeat for 2 different labels

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

By SpoHo - 12/18/2013

Hi!

In my experiment i have to present pairs of words randomly, while changing the position (left / right) randomly as well. Like: good / bad, old / young, etc.


For that purpose, i created 4 labels: PosLeft, PosRight, NegLeft, NegRight

How can I select the pairs randomly without repeating one pair ? I tried select = noreplacenorepeat, but it doesn't work properly. I think it's because for Inquisit good / bad is a differnent pair to bad / good.

Do you guys have any idea how to achieve that?

You can have a look at my code below.



By Dave - 12/18/2013

#1: There is no such thing as selection in /bgstim attributes. I.e

<block blcktest1>
/ bgstim = noreplacenorepeat(txtPosLinks,txtNegRechts)
/ trials = [1-5 = countdown; 6-8 = random(trlLogo)]
</block>

makes no sense and I'm not at all sure what you intended that to mean / achieve.

#2: What exaclty do you 'noreplacenorepeat' expect to do here?

<text txtPosLinks>
/ items = ("sportlich", "modern","qualitativ", "dynamisch", "etabliert", "vertrauenswürdig", "alt", "cool", "bekannt", "fortschrittlich")
/ select = noreplacenorepeat
[...]

Clearly, all 10 items are *different*, so what could possibly repeat?
By Dave - 12/18/2013

Oh, and since you (presumably) want to keep selection pools intact *across blocks*, you *must* specify proper /resetinterval attributes for the applicable <text> elements.
By SpoHo - 12/18/2013

hey dave!

ok thanks for clearing that up. I adjusted my code.

Could you give me a hint on how to work with /resetinterval across blocks properly?

My intention was to have 10 pairs of words, each being presented in a random order and in random positions (left / right, e.g. good / bad vs. bad / good).


By Dave - 12/18/2013

Consider

<expt>
/ blocks = [1=firstblock; 2=secondblock]
</expt>

<block firstblock>
/ bgstim = (leftlabel, rightlabel)
/ trials = [1=mytrial]
</block>

<block secondblock>
/ bgstim = (leftlabel, rightlabel)
/ trials = [1=mytrial]
</block>

<text leftlabel>
/ items = ("A", "B")
/ select = noreplace
/ resetinterval = 0
/ position = (25%, 10%)
</text>

<text rightlabel>
/ items = ("B", "A")
/ select = text.leftlabel.currentindex
/ position = (75%, 10%)
</text>

<trial mytrial>
/ validresponse = (57)
</trial>
By SpoHo - 12/18/2013

I tried to understand it, but i don't get your point at:

<block firstblock>
/ bgstim = (leftlabel, rightlabel)
/ trials = [1=mytrial]
</block>

<block secondblock>
/ bgstim = (leftlabel, rightlabel)
/ trials = [1=mytrial]
</block>


I tried to add /resetinterval = 0 to my experiment, but I think I used it wrong.

While testing, I had one block "cool / uncool" followed directly by "uncool / cool".

Again, my updated experiment is attached.
By Dave - 12/18/2013

First pair:

<text txtNegRechts>
/ items = ("unsportlich", "konservativ", "billig", "langsam", "neuartig", "unzuverlässig", "jung", "uncool", "unbekannt", "rückständig")
/ select = text.txtPosLinks.currentindex

depends on 

<text txtPosLinks>
/ items = ("sportlich", "modern","qualitativ", "dynamisch", "etabliert", "vertrauenswürdig", "alt", "cool", "bekannt", "fortschrittlich")
/ select = noreplace

---
Second pair:

<text txtPosRechts>
/ items = ("sportlich", "modern","qualitativ", "dynamisch", "etabliert", "vertrauenswürdig", "alt", "cool", "bekannt", "fortschrittlich")
/ select = text.txtneglinks.currentindex

depends on

<text txtNegLinks>
/ items = ("unsportlich", "konservativ", "billig", "langsam", "neuartig", "unzuverlässig", "jung", "uncool", "unbekannt", "rückständig")
/ select = noreplace

---

They are completely independent. Whatever is selected in the first pair has no effect whatsoever on the selection on the second pair.
By SpoHo - 12/18/2013

right, thats my problem :)

Would it be possible to have a global variable which contains the chosen items so far? So it could be used as a global filter?

Another approach I thought about would be to have to items (txtPositive, txtNegative) and to change the position randomly - would that make any sense?


By Dave - 12/18/2013

SpoHo (12/19/2013)
Another approach I thought about would be to have to items (txtPositive, txtNegative) and to change the position randomly - would that make any sense?


Yes, IMO, that's the best way to go a about it. In other words:

<expt>
/ blocks = [1=firstblock; 2=secondblock]
</expt>

<block firstblock>
/ onblockbegin = [text.positivelabel.hposition=25%; text.negativelabel.hposition=75%]
/ bgstim = (positivelabel, negativelabel)
/ trials = [1=mytrial]
</block>

<block secondblock>
/ onblockbegin = [text.positivelabel.hposition=75%; text.negativelabel.hposition=25%]
/ bgstim = (positivelabel, negativelabel)
/ trials = [1=mytrial]
</block>

<text positivelabel>
/ items = ("P1", "P2")
/ select = noreplace
/ resetinterval = 0
/ position = (25%, 10%)
</text>

<text negativelabel>
/ items = ("N1", "N2")
/ select = text.positivelabel.currentindex
/ position = (75%, 10%)
</text>

<trial mytrial>
/ validresponse = (57)
</trial>