Calling the value of a higher-level list object?
liwenna
liwenna at gmail.com
Sat Jan 22 18:05:14 UTC 2011
Ok.... let's see if I get your problem...
You kinda want subjects to be assigned to one of two conditions,
answer or mislead. You write that you want to assign them to different
procs, keep the objects the same but the hint words (that are stored
in a list) should vary between the two conditions? So basically not
two procs, but one proc, yet with different words used.
Because I am not sure what you look for exactly I'll not give you a
clear solution but simply blurt out some thoughts on e-prime mechanics
"tricks". In general I think you should approach this problem the
other way around: instead of having a lower order list 'peek back' to
a higher order list it's probably more sensible to have a higher list
decide the lower order course for each run of the program.
1: you could have a list with two levels that have the same procedure
nested into it but then nest a different list with words (i.e.
answerwordlist & misleadwordlist) into each level so that when the
procedure is ran from level 1 the words in the one list are called for
while when running the same procedure from the second level the words
in the other list will be used. This way you can alternate
conditions.. .but it's less suitable for between subjects designs as
then you'll have to force the program to only use one of the levels
for each subject.
2: you could assign a condition to each subject at the start of the
experiment and then have the program run in a certain order based on
that attribute (also see the thread: Change the SlideObject Correct
Response based on Attribute ). Start the experiment with an inline
with the following code that will assign version A (or call it answer
if you like) to all odd subjectnumbers and B (mislead) to all even
subjectnumbers.
if c.getattrib ("subject") mod 2 = 1 then c.setattrib "version",
"A"
if c.getattrib ("subject") mod 2 = 0 then c.setattrib "version",
"B"
Obviously other criteria for assigning one version or another could be
used.
Built the procedure for one run of the experiment and then rebuilt it
again in the same experimentprocedure. So: start with a list that
contains the procedure and all the lower lists for a run of the
'answer variant' of the task and then after that create another list
containing everything you need for the mislead variant. You can
actually use the same trialprocedures and all, just change the words
in the lists that are used as hints. Don't copy/paste the first build
of the task but create new lists and type into that the name of the
previously created procedure. This way the same procedure will be
used. If you copy/paste stuff (lists/procedures) they'll become
separate objects and any changes you might want to make would have to
be made twice. Unless of course you after all do need different
objects in the two versions.
Now.. if a subject is assigned the answer condition it should only be
taken trough the first part of the experiment... so inbetween the
'main lists' for both task variants add an inline that reads: "goto
endlabel" and place a label after the second part of the experiment
and call it endlabel. If the program is finished with the first list
and encounters that inline, it will skip to the endlabel and therefore
pass by the second part of the experiment. On other runs you need the
first part to be skipped and only the second part to be run so place
an inline before the first mainlist that reads: if c.getattrib
("version") = "B" then goto blabel. Place a label called blabel
inbetween the two lists (but after the inline that read goto
endlabel). Now for those subjects that get assigned version B the
program will skip the first list (it goes to blabel) and run the
second list.
3. Another way, not my favourite, is to just mess with the lists...
you can create two lists of hintwords (one answerlist and one
misleadlist) and then delete them both so that they end up in the
unreferenced objects 'bin'. Assign a version to each subject as
described above and based on that attribute have the program use on of
the two unreferenced list using something like the following code: ""
If c.getattrib ("version") = "A" then triallistist.setattrib(1,
"nested")="answerlist" if c.getattrib ("version") = "B" then
triallist.setattrib(1, "nested")="misleadlist" end if "" This code
should be placed on the experimentproc before the triallist. I am not
entirely sure about the above thing though... something in the back of
my head tells me that the above codeformat might not work for the
attributes nested and procedure of a list, but have no e-prime to try
it with right now.
Undoubtedly there are many more ways to do these kind of things, but
these are the first that came to mind.
Let me know if these are of any help or if you're problem actually is
different from what I thought.
best,
liw
On Jan 20, 4:14 pm, Matthew <matthewdwoo... at gmail.com> wrote:
> Hi guys,
>
> I've trolled the forums here & at PST for an answer to this problem, w/
> o much help. I have an experiment where participants work on a series
> of remote associate problems (RAT for short), complete some lexical
> decision trials (LDT), and then work on more remote associates (both
> unsolved problems from 1st session and new, unseen problems). They
> are trained on how to do both of these things at the start of the
> experiment.
>
> Now my problem. The lexical decision task includes some hints to the
> remote associate problems that were not solved in the first RAT
> session. These can be either solutions for the RAT, OR words that are
> associates of 2+ problem words (but are not solutions). Right now, I
> have this set up as a between-subjects comparison, and am trying to
> use a high-level list that assigns participants to one of two Procs
> that correspond to these conditions. I would like to keep objects in
> both of these Procs the same, and use an InLine to look at what high-
> level proc I'm in, and then select the appropriate hint word for an
> unsolved item. A snippit of my (broken) code follows. Any
> suggestions?
>
> Thanks,
> -Matt
> ----------
>
> ' A page out of E-Basic HELP - FactorSpace.GetProc (method)
> Dim HintCondition as String
> Dim theCellSpec as CellSpec
> Set theCellSpec = HintCond.Order.GetNext()
> HintCondition = CStr(HintCond.GetProc(theCellSpec))
> ...
> If HintCondition = "AnswerProc" then
> For i = 1 to IncorrectPresentNum
> ...{add solution hints to LexicalDecision List for 1/2 of
> unsolved RATs}...
> Next i
> ElseIf HintCondition = "MisleadProc" then
> For i = 1 to IncorrectPresentNum
> ...{add misleading hints to LexicalDecision List for 1/2 of
> unsolved RATs}...
> Next i
> EndIf
--
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