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