List counterbalancing by sujbect

David McFarlane mcfarla9 at msu.edu
Mon Mar 12 19:57:02 UTC 2012


Rachel,

First, as you have found, it is not simple to do what you want here 
in E-Prime.  If anybody knows of another platform that handles this 
better, then please let us know!

Second, the Counterbalance option in EP is misnamed.  If you searched 
the EP Google Group for "counterbalance" then you may come upon the 
following thread where this gets 
explained: 
http://groups.google.com/group/e-prime/browse_thread/thread/26d2e1e83c6a09bb .

Now, if you want to run several different samples from a stimulus or 
trial List, you cannot just put that as a nested List in your main 
BlockList, because that will pick just one row from the nested List 
and pass just that down to the trials at the next level.

David Vinson shows one perfectly good way to handle this by setting 
BlockList to Counterbalance and using separate BlockProcs, each using 
a different TrialList to run the same TrialProc, e.g.,

Experiment Object
     SessionProc
         BlockList
             BlockProc1
                 TrialList1
                     TrialProc
             BlockProc2
                 TrialList2
                     TrialProc
             BlockProc3 ...

As an experienced and dedicated programmer (as opposed to an ordinary 
researcher), I dislike making several Procedures that all do the same 
thing only with different content, I prefer to have a single 
Procedure and then pass it changing content as needed.  So here is 
how I would do that using nested Lists.

My structure would look more like this:

Experiment Object
     SessionProc
         BlockList
             BlockProc
                 TrialList
                     (?) [StimList]
                     TrialProc
Unreferenced E-Objects
     StimList1
     StimList2
     ...

Each StimList (under Unreferenced E-Objects) holds the list of 
stimuli for one counterbalanced block.  In BlockList I add one 
attribute named "StimList", and for each block I enter the name of 
the StimList for that block, i.e., "StimList1", "StimList2", etc.

TrialList has just one row, and in Nested I put "[StimList]".  Then I 
either set Weight to the number of trials (e.g., 8), or set the list 
to Exit after the proper number of samples (e.g., 8).  With that 
done, TrialList will take samples from the StimList named by 
[StimList] and use those for the trials run by 
TrialProc.  Follow?  This technique has also been discussed somewhat 
before at 
http://groups.google.com/group/e-prime/browse_thread/thread/9519542730f4b242 .

OK, so maybe that is no simpler than what David Vinson showed, but it 
does show that there is more than one way to skin this cat, and you 
may find it a suitable strategy for some cases.

---
David McFarlane
E-Prime training 
online:  http://psychology.msu.edu/Workshops_Courses/eprime.aspx
Twitter:  @EPrimeMaster (twitter.com/EPrimeMaster)


At 3/12/2012 06:12 AM Monday, David Vinson wrote:
>Hi Rachel,
>
>I approached this problem a different way, not using nested lists.
>
>The MasterList contains 8 lines, each running a different procedure 
>(one for each of the 8 subject groups), e.g.
>RunProc1
>RunProc2
>RunProc3
>...
>
>(and in its simplest form no other information is specified in the MasterList)
>
>Each of these RunProc* procedures just contains a single List (akin 
>to your Group1List, Group2List, Group3List...) all of which contain 
>the full list of items for that Group, and call the same 
>experimental trial procedure.  These are set to exit after all 
>samples in the list (the number of items).
>
>The master list is set to Exit after 1 sample, and Offset - because 
>only one entry per subject is selected, there's no need to worry 
>about what order the master list is sampled in (you control this by 
>your assignment of subject number).
>
>this way each subjects sees only one entry in the Master list, and 
>all items in their respective Group list.
>
>hope this helps!
>-david
>
>
>
>On 11/03/2012 22:34, Rachel wrote:
>>Hi All,
>>
>>I have an extremely simple question that I know must be possible to
>>do, but I simply cannot get it to work. I've read a jillion old forum
>>posts, but it seems like everyone is asking a much more complicated
>>question than I have, and so I can't find just a basic template to
>>work off of.
>>
>>I have 8 subject groups, each with its own list of video stimuli. I
>>want each subject to see all of the video stimuli from exactly one of
>>these lists. I created a master list (GroupList) with 8 nested levels
>>(Group1, Group2, ..., Group8) and in the master list, I set Selection
>>to Counterbalance by Subject. However, instead of playing every video
>>in the appropriate Group# list, it plays exactly 1 video and then
>>exits. What is going on? How do I make it play every single trial in
>>that one group list, and cycle through and choose a different group
>>list for each new subject?
>>
>>For example, Subject1 should see all 118 videos in the Group1 list (in
>>a random order); Subject2 should see all 118 videos in the Group2
>>list; Subject3 should see all 118 videos in the Group3 list, and so on
>>through all 8 Group# lists.
>>
>>This is really time-critical, especially since this seems to be
>>exactly what the Counterbalance option should do, so as prompt a
>>response as possible would be really appreciated.
>>
>>Thanks,
>>Rachel
>
>--
>David Vinson, Ph.D.
>Senior Postdoctoral Researcher
>Cognitive, Perceptual and Brain Sciences Research Department
>University College London
>26 Bedford Way, London WC1H 0AP
>Tel +44 (0)20 7679 5311  (UCL internal ext. 25311)
>
>
>--
>You received this message because you are subscribed to the Google 
>Groups "E-Prime" group.
>To post to this group, send email to e-prime at googlegroups.com.
>To unsubscribe from this group, send email to 
>e-prime+unsubscribe at googlegroups.com.
>For more options, visit this group at 
>http://groups.google.com/group/e-prime?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.



More information about the Eprime mailing list