<div dir="ltr">Thank you for the suggestions. Sorry for the small font, I thought that a long list of code would be neater if it was slightly smaller, but apparently Google's preset font sizes do not show up well in e-mails. <div><br></div><div>The short version is: I need a trial of task 1 to be followed by another trial of task 1 three out of four times, and by a trial of task 2 one out of four times, and vice-versa (first If statement), but the same trial can't come up more than five times in a row (second If statement). The current version of the script should do that, but doesn't, and I don't know why.<br><div><br></div><div>Creating nested lists for both tasks is definitely a good idea, that would reduce the number of SetWeight commands needed by 75%, but as for restructuring the lists: I have thought about using multiple lists but I don't see a way of dynamically varying trial probabilities while preserving randomness and ensuring that each stimulus is used exactly twice. I will take another look at it, though.</div><div><br></div><div>I did not know about List.Reset but if it does what I assume it does, I cannot use it because the weight adjustments are needed for the next trial. My trial procedure looks roughly like:</div><div><br></div><div>Facelist</div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>StimulusSlide</div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>ResponseSlide</div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div>SetWeightScript</div></blockquote><div><br></div><div>Which task to select in the next trial depends on what task the current trial is. Unless I misunderstand, adding List.Reset would undo all the changes made by the script and choose the next trial with equal probability for both tasks.</div><div><br></div><div>Does this procedure design cause problems? Since I do not know how to refer to an attribute of the previous trial, this seemed like the only possible way of doing what I'm trying to do.</div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div> </div></blockquote><div><div><br>On Monday, March 31, 2014 9:24:10 PM UTC+2, McFarlane, David wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Just a few comments offhand...
<br>
<br>First, the text for your code excerpt appears in little tiny type in 
<br>my e-mail reader, I had to copy & paste it into a text editor just to 
<br>read it.  Please spare me that trouble in the future.
<br>
<br>Second, whenever I see someone mucking about that much with List 
<br>weights in code, I wonder whether the same end might be better 
<br>accomplish by some restructuring with multiple Lists or nested 
<br>Lists.  We all find it difficult to rethink and restructure a program 
<br>once we feel it is close to working, but many times I have found that 
<br>that sort of rethinking and restructuring has not only fixed the 
<br>immediate problem, but also solved other imminent problems.  You may 
<br>indeed have a good reason for managing List weights in this case, but 
<br>think about it.
<br>
<br>Third, I confess I found too much detail in the description for me to 
<br>work through it all.  So I will just toss out the most common mistake 
<br>that people make when modifying Lists in code -- did you remember to 
<br>use List.Reset (in your case, FaceList.Reset) after making all these 
<br>changes?  Your code excerpt does not include that line.
<br>
<br>Regards,
<br>-----
<br>David McFarlane
<br>E-Prime training 
<br>online:  <a href="http://psychology.msu.edu/Workshops_Courses/eprime.aspx" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fpsychology.msu.edu%2FWorkshops_Courses%2Feprime.aspx\46sa\75D\46sntz\0751\46usg\75AFQjCNHhJVD3mCfXKdywfB5AgKLPu1OSJg';return true;">http://psychology.msu.edu/<wbr>Workshops_Courses/eprime.aspx</a>
<br>Twitter:  @EPrimeMaster (<a href="https://twitter.com/EPrimeMaster" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Ftwitter.com%2FEPrimeMaster\46sa\75D\46sntz\0751\46usg\75AFQjCNHlT7nwYBmELwRxV4Xn5GW-sG9EKw';return true;">https://twitter.com/<wbr>EPrimeMaster</a> )
<br>
<br>/----
<br>Stock reminder:  1) I do not work for PST.  2) PST's trained staff 
<br>take any and all questions at <a href="https://support.pstnet.com" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fsupport.pstnet.com\46sa\75D\46sntz\0751\46usg\75AFQjCNF5BfukPzW6lq7UCweMsMu7_9wJEQ';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fsupport.pstnet.com\46sa\75D\46sntz\0751\46usg\75AFQjCNF5BfukPzW6lq7UCweMsMu7_9wJEQ';return true;">https://support.pstnet.com</a> , and they 
<br>strive to respond to all requests in 24-48 hours, so make full use of 
<br>it.  3) In addition, PST offers several instructional videos on their 
<br>YouTube channel (<a href="http://www.youtube.com/user/PSTNET" target="_blank" onmousedown="this.href='http://www.youtube.com/user/PSTNET';return true;" onclick="this.href='http://www.youtube.com/user/PSTNET';return true;">http://www.youtube.com/user/<wbr>PSTNET</a> ).  4) If you do 
<br>get an answer from PST staff, please extend the courtesy of posting 
<br>their reply back here for the sake of others.
<br>\----
<br>
<br>
<br>At 3/31/2014 07:59 AM Monday, LaurensK90 wrote:
<br>>I'm trying to create a task-switching experiment that requires 
<br>>participants to categorize a face by either emotion or gender, as 
<br>>indicated by a pre-stimulus cue. Repeat trials (emotion trial 
<br>>following an emotion trial, or gender trial following a gender 
<br>>trial) need to be more common than switch trials (emotion trial 
<br>>following a gender trial, etc.), with a 1:3 switch:repeat ratio. To 
<br>>achieve this, I wrote this script:
<br>>
<br>>Dim e as integer
<br>>Dim g as integer
<br>>'Weighting trials to make repeats more likely than switches
<br>>If c.GetAttrib("TaskNr") = "0" Then
<br>>  FaceList.SetWeight 1, "3"
<br>>  FaceList.SetWeight 2, "1"
<br>>  FaceList.SetWeight 3, "3"
<br>>  FaceList.SetWeight 4, "1"
<br>>  FaceList.SetWeight 5, "3"
<br>>  FaceList.SetWeight 6, "1"
<br>>  FaceList.SetWeight 7, "3"
<br>>  FaceList.SetWeight 8, "1"
<br>>  'Counter to keep track of how many consecutive emotion trials have occured
<br>>  e = e+1
<br>>  g = 0
<br>>
<br>>ElseIf c.GetAttrib("TaskNr") = "1" Then
<br>>  FaceList.SetWeight 1, "1"
<br>>  FaceList.SetWeight 2, "3"
<br>>  FaceList.SetWeight 3, "1"
<br>>  FaceList.SetWeight 4, "3"
<br>>  FaceList.SetWeight 5, "1"
<br>>  FaceList.SetWeight 6, "3"
<br>>  FaceList.SetWeight 7, "1"
<br>>  FaceList.SetWeight 8, "3"
<br>>  'Counter to keep track of how many consecutive gender trials have occured
<br>>  g = g+1
<br>>  e = 0
<br>>
<br>>End If
<br>>'Set weights for emotion or gender trials to zero to prevent too many repeats
<br>>'If e >= 5 Then
<br>>' FaceList.SetWeight 1, "0"
<br>>' FaceList.SetWeight 2, "1"
<br>>' FaceList.SetWeight 3, "0"
<br>>' FaceList.SetWeight 4, "1"
<br>>' FaceList.SetWeight 5, "0"
<br>>' FaceList.SetWeight 6, "1"
<br>>' FaceList.SetWeight 7, "0"
<br>>' FaceList.SetWeight 8, "1"
<br>>' e = 0
<br>>
<br>>'ElseIf g >= 5 Then
<br>>' FaceList.SetWeight 1, "1"
<br>>' FaceList.SetWeight 2, "0"
<br>>' FaceList.SetWeight 3, "1"
<br>>' FaceList.SetWeight 4, "0"
<br>>' FaceList.SetWeight 5, "1"
<br>>' FaceList.SetWeight 6, "0"
<br>>' FaceList.SetWeight 7, "1"
<br>>' FaceList.SetWeight 8, "0"
<br>>' g = 0
<br>>
<br>>'End If
<br>>
<br>>The first If statement looks at the current trial type and increases 
<br>>the weights of every same trial type to 3, and every other trial 
<br>>type to 1. The trial types are in alternating rows in FaceList. The 
<br>>script is at the end of the core experimental procedure, meaning 
<br>>that the weights are adjusted after each trial is complete. If I've 
<br>>done this correctly, there should be three times as many repeat 
<br>>trials as switch trials, but this doesn't seem to happen. I ran the 
<br>>experiment with 768 trials, then copied the TaskNr column (filled 
<br>>with 0s and 1s) out of the data file and pasted it in Excel. Then I 
<br>>added every cell to the cell below it to determine whether the trial 
<br>>was a repeat (0 or 2) or a switch (1), and counted those. This 
<br>>always results in roughly equal numbers of 0s, 1s and 2s (a 1:2 
<br>>switch ratio) while running the task without the script gives you as 
<br>>many 1s as 0s and 2s combined (a 1:1 switch ratio). So the switch 
<br>>ratio works as expected without the script but not with it. I'm 
<br>>wondering if there's something wrong with the way I'm counting these 
<br>>because changing the weights from 3 to 4 or 5 makes the maximum 
<br>>number of consecutive repeats increase. With weights set to 3, 10 
<br>>gender tasks in a row occur 20 times, and when set to 5, 10 in a row 
<br>>occur 46 times. So it's strange the actual switch ratio isn't affected.
<br>>
<br>>The second if statement tries to ensure that there are no more than 
<br>>5 consecutive trials of the same type, by looking at a counter that 
<br>>increments every time a trial passes of one type, and resets every 
<br>>time a trial passes of the other type. If the counter reaches 5, it 
<br>>sets all the trials of the same type to zero so it can't select them 
<br>>again. I haven't tested this extensively but the first time I ran 
<br>>the experiment with it, the number of consecutive repeats was even 
<br>>higher than normal! Have I made a mistake in this script, or might 
<br>>this be the same problem as the previous one?
<br>>
<br>>I've asked official E-Prime support for help as well, a week ago, 
<br>>but haven't heard back from them yet, so any additional assistance 
<br>>would be appreciated.
<br>
<br>
<br></blockquote></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "E-Prime" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:e-prime+unsubscribe@googlegroups.com">e-prime+unsubscribe@googlegroups.com</a>.<br />
To post to this group, send email to <a href="mailto:e-prime@googlegroups.com">e-prime@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/e-prime/d391ec77-2a62-490b-9a66-c79bfa7ac76d%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/e-prime/d391ec77-2a62-490b-9a66-c79bfa7ac76d%40googlegroups.com</a>.<br />
For more options, visit <a href="https://groups.google.com/d/optout">https://groups.google.com/d/optout</a>.<br />