repeat one of the sample of items

524 views
Skip to first unread message

Luna

unread,
Sep 18, 2008, 9:27:34 AM9/18/08
to E-Prime
Hello,

A part of my experiment asks some questions using a Likert scale. The
questions are taken from a list which are given sequentially in a
slide. Because kids are completing it, they often say they hit "2"
instead of "0" and so on. However, that item is gone and the next item
is showing. Can I write script that counts the trial (count+1)? Then,
if the person wants to change sample 10 then I can press "b" on sample
11 which will go to the list and retrieve sample number count-1. Is
that even possible? I started writing script, but I've never used any
goto statement that did not go to a label.

Thanks for any help. You guys are great at giving advice, although I
still can't run videos on eprime on my Vista machine. ho-hum.

-Luna

David McFarlane

unread,
Sep 18, 2008, 5:20:31 PM9/18/08
to e-p...@googlegroups.com
Luna,

>A part of my experiment asks some questions using a Likert scale. The
>questions are taken from a list which are given sequentially in a
>slide. Because kids are completing it, they often say they hit "2"
>instead of "0" and so on. However, that item is gone and the next item
>is showing. Can I write script that counts the trial (count+1)? Then,
>if the person wants to change sample 10 then I can press "b" on sample
>11 which will go to the list and retrieve sample number count-1. Is
>that even possible? I started writing script, but I've never used any
>goto statement that did not go to a label.

Boy, wouldn't that be a nice feature! Unfortunately the structure of
E-Prime programming objects presents several obstacles to your goal.

But first off, if you just want to do Likert scales and are not too
fussy about the timing, you might try MediaLab from
Empirisoft. MediaLab (and its companion product, DirectRT) cannot do
everything that E-Prime does (e.g., cannot do a psychophysical
threshold procedure), but what they do they do much better than
E-Prime. I believe you can get a trial version from the Empirisoft web site.

Now I assume that your EP program just presents your questions from a
list object, and you want to return to a prior level (row) of the
list. And that is the problem. Once a list is running EP does not
provide any good way to backtrack (or skip forward) through the
list. Specifically, no "goto" will help you, because there is no
program destination to return to, you really want to re-run an
earlier level from the list object. To be sure, you could try things
like List.GetPrevAttrib (see the online E-Basic Help), and as I
recall from my explorations that even has the side effect of moving
the list's order pointer backwards. But even if that moved you back,
you would have to change the Exit Condition (List.TerminateCondition)
to add one more sample before the list quits, and I do not think that
you can alter the Exit Condition once the list is running. Finally,
once a response gets logged you cannot unlog it, so you would still
have the invalid answers in the .edat file and would have to filter those out.

Of course, I would like it very much if someone else could weigh in
with a solution, perhaps I missed something.

>I still can't run videos on eprime on my Vista machine. ho-hum.

Then you just need to revert to XP. As has been reported several
times on this list and the PST Forum, EP2 continues to have problems
with video and sound under Vista, although they seem to work OK under
XP. (EP1 sound does work under Vista, although EP1 cannot do videos
at all, and its sound does not have the new streaming buffer
mode.) I am one of the few people who actually likes what Microsoft
is trying to do with Vista, unfortunately Microsoft did not finish
writing the OS before they marketed it. Perhaps when Microsoft
finishes writing the code everything will be OK. Until then
researchers need to stick with XP. Or we should all just find a way
to move to Linux or Max OS X.

-- David McFarlane, Professional Faultfinder

David McFarlane

unread,
Sep 18, 2008, 5:36:44 PM9/18/08
to e-p...@googlegroups.com

>if you just want to do Likert scales and are not too fussy about the
>timing, you might try MediaLab from Empirisoft.

More to the point, I believe the current version of MediaLab includes
a specific feature for moving back one question at a time.

Matt Lenhart

unread,
Sep 19, 2008, 9:25:42 AM9/19/08
to E-Prime
Hi Luna,

I am not sure if this would resolve the problem, but why not include a
confirmation screen on your TrialProc so that the subject will see
what E-Prime logged as their response, and then allow them to go back
to the stimulus object to choose again if they pressed a key they
didn't mean to, changed their mind, etc? This can be handled with a
little script after the confirmation object that just checks to see
what the subject's response was, and then jumps back to a Label placed
before the stimulus object (using a Goto command) if the subject does
not confirm their response.

With the way that information is logged in E-Prime, it is not possible
to jump back to previous trials because the data for that trial has
already been logged (i.e., E-Prime logs data at the end of each
Procedure). You would either need to log the data as a new line in the
data file, or create your own external data file that could overwrite
previous trials (this would be very time consuming and error-prone).
There are ways to go back to previous trials in E-Prime, they are just
not as straightforward as telling E-Prime to re-run level X in List Y
(again, however, you would need to re-log data even if you did this).

Please let me know if you have any further questions.

- Matt
PST Technical Consultant
http://www.pstnet.com/

David McFarlane

unread,
Sep 19, 2008, 10:29:52 AM9/19/08
to e-p...@googlegroups.com
Luna,

I gave your problem some more thought last night (once my mind
latches on to one of these little puzzles it's hard to let it
go). Now I do not think that your goal is quite so impossible, and
at the risk of boring others on the list I will give you my latest thoughts.

I would try putting a bit of script at the beginning and the end of
your trial procedure. At the end I would use a bit of script just to
set a "flag" if I wanted to return to the previous list item. In the
beginning of the trial procedure I would use some script to check
this flag -- for the sake of discussion, let's call the current trial
"trial B", and the previous one "trial A". If the flag were set then
I would use List.GetPrevAttrib or whatever to set all the attributes
back to the values from trial A, and then run the trial. Now, I do
not know if the list would then automatically return to trial B and
continue from there, so that may be a problem.

There remains the problem of changing the number of trials during the
list. For that I would just set the list properties to exit after
some large number of trials (say, 10,000 cycles). Then my script at
the end of the trial procedure would take care of figuring out when
to end the list, and then end the list from script with List.Terminate.

Oh, you might also look at the "Rerun Error Trials Until All Correct"
sample at http://www.pstnet.com/e-prime/support/samples.asp (requires
login). From the description this does not do exactly what you want,
as I think it defers rerunning the trials until it has finished the
first run of all the trials, but it might give you some ideas.

I will be very interested if you make this work, so please write back
and let us know how this turns out!

Paul Jackson

unread,
Sep 19, 2008, 4:19:08 PM9/19/08
to e-p...@googlegroups.com
Luna,

I have only had a quick glance over this thread so please ignore me if I
have missed crucial points.

From what I can see you just want to repeat a trial after it is run if a
given button is pressed. Is that true? Now assuming that you don't want
to keep the results from the first time couldn't you just have a goto at
the end of the trial to start it again if the given button is pressed?

Paul

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Paul R. Jackson

Experimental Programmer
School of Psychology
University of Queensland

E: pa...@psy.uq.edu.au
P: 33656950
W: www.psy.uq.edu.au/~paulj
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

David McFarlane

unread,
Sep 22, 2008, 1:42:44 PM9/22/08
to e-p...@googlegroups.com
Luna,

Sorry I keep coming back to this, but you pose a fascinating little puzzle.

As yet another alternative, if you just want to do Likert scales and
do not care too much about the timing, you could do this with a bit
of HTML, JavaScript, and maybe some ActiveX in Internet Explorer or
another suitable web browser. With HTML links you can easily make
each trial go whereever you like. We have done things like this
ourselves to good effect, and it does not cost anything.

Just another thought,

Matt Lenhart

unread,
Sep 22, 2008, 2:30:57 PM9/22/08
to E-Prime
> Luna,
>
> I have only had a quick glance over this thread so please ignore me if I
> have missed crucial points.
>
> From what I can see you just want to repeat a trial after it is run if a
> given button is pressed. Is that true? Now assuming that you don't want
> to keep the results from the first time couldn't you just have a goto at
> the end of the trial to start it again if the given button is pressed?
>
> Paul
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>  Paul R. Jackson
>
>  Experimental Programmer
>  School of Psychology
>  University of Queensland
>
>  E: pa...@psy.uq.edu.au
>  P: 33656950
>  W:www.psy.uq.edu.au/~paulj
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Really, unless you want to account for a situation where the subject
decides 4 or 5 trials into the experiment that they want to revise
their response to the first trial, this is the way to go. You can let
the subject see the question and their response at the end of the
trial, and give them one last chance to go back and modify it if they
hit the wrong key or suddenly changed their mind after reading the
question again.

Yes, there are other ways of implementing a Likert scale test/survey
so that you can backtrack through the questions that have already been
presented, but unless you anticipate a situation like the above
occurring regularly, I really don't think that it is necessary to go
beyond a simple confirmation screen.


- Matt

Luna

unread,
Oct 18, 2008, 2:54:09 PM10/18/08
to E-Prime
Hi David,

I did think about how to have e-prime do this, and the only thing I
could come up with was having a specific key, not the likert scale
response set, bring up a response box where the participant could type
in the correct answer. So, the old incorrect response would be logged
as well as the new correct one. However, I do like the HTML way better
because one could have all 15 items on the same screen. The person can
go back and change any of the radio-buttons and then press submit. I
like it. It means I have to close eprime in the middle because I have
videos on eprime, then questionnaire, then some pictures of faces back
on eprime. It could work.


Thanks to you and everyone who responded!
-Luna
Reply all
Reply to author
Forward
0 new messages