noreplacenorepeat for 2 different labels


Author
Message
SpoHo
SpoHo
Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)
Group: Forum Members
Posts: 27, Visits: 115
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.




Attachments
experiment.iqx (252 views, 7.00 KB)
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: 13K, Visits: 108K
#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?

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: 13K, Visits: 108K
Oh, and since you (presumably) want to keep selection pools intact *across blocks*, you *must* specify proper /resetinterval attributes for the applicable <text> elements.

SpoHo
SpoHo
Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)
Group: Forum Members
Posts: 27, Visits: 115
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).



Attachments
experiment.iqx (221 views, 7.00 KB)
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: 13K, Visits: 108K
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>

SpoHo
SpoHo
Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)
Group: Forum Members
Posts: 27, Visits: 115
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.

Attachments
experiment.iqx (237 views, 7.00 KB)
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: 13K, Visits: 108K
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.

SpoHo
SpoHo
Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)Esteemed Member (2.1K reputation)
Group: Forum Members
Posts: 27, Visits: 115
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?



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: 13K, Visits: 108K
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>


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search