Can't get AddObservation to work, or plague of the Type Mismatch
Michiel Spape
Michiel.Spape at nottingham.ac.uk
Wed Mar 9 15:55:32 UTC 2011
Hiya,
Ugh, lots of code. Forgive me, like many coding people, I tend to be lazy and simply won't read long threads. I've never had any use for this "summation object" deal, but your code is really quite confusing:
> > dim stopaccuracy as Summation
> > dim erroraware as Summation
> > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent")
> > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent")
> > stopaccuracy.AddObservation c.GetAttrib("ogperf")
> > errorawareness.AddObservation c.GetAttrib("ogaware")
What exactly are you doing here? Stopaccuracy is both a "summation" and an "attribute in a list". Errorwareness is only semi-overlapping with this attribute, although I see no reason why you would want this. Ogperf is not even an attribute but a local variable. If you have declared it somewhere, it probably looks into a list anyway, finds a question mark, tries to put this into stopaccuracy. Thus, what you get is StopAccuracy.AddObservation ?, or, dbl(?), which doesn't work either.
If you want to find out what's going on with the mismatch (one of the more simpler things to solve):
>stopaccuracy.AddObservation c.GetAttrib("ogperf")
Then try change this into:
stopaccuracy.AddObservation 0
if the latter works but the former doesn't, then c.GetAttrib("ogperf") probably receives a string instead, or, in other words, Ben would be right. See what ogperf is by doing "debug.print c.GetAttrib("ogperf"). So, try beginning simple with working code, then add - rather than the opposite.
So, start with as clean and working code as possible. My suggestion would be to start with getting rid of the summation stuff (after all, what more is stopaccuracy.mean then merely numberofstopaccuratetrials / numberoftrials?) and the c.getattrib/set stuff until you can get everything working on one level.
Cheers,
Mich
Michiel Spapé
Research Fellow
Perception & Action group
University of Nottingham
School of Psychology
www.cognitology.eu
-----Original Message-----
From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf Of Micah
Sent: 09 March 2011 15:19
To: E-Prime
Subject: Re: Can't get AddObservation to work, or plague of the Type Mismatch
Hi Ben,
Sincere thanks for your suggestion. Helped me to feel like I'm getting
somewhere in my understanding of E-basic, as I had the same idea.
Sadly neither CInt or CDbl used in that way change the error. I also
tried declaring erroraware and stopaccuracy as doubles, and tried
converting them into new variables that would be numbers. I'm not sure
I did that correctly however.
Thanks for your help- i'll be really excited if we can solve this.
On Mar 9, 3:17 pm, ben robinson <baltimore.... at gmail.com> wrote:
> try changing them to:
> stopaccuracy.AddObservation CInt(c.GetAttrib("ogperf"))
> errorawareness.AddObservation CInt(c.GetAttrib("ogaware"))
>
> or CDbl(...) if CInt(...) isn't what you need.
> i think the problem might be that when you c.GetAttrib the value it pulls
> from the list is understood as a string, rather than some sort of number...
>
>
>
>
>
>
>
> On Wed, Mar 9, 2011 at 8:34 AM, Micah <ucfmi... at gmail.com> wrote:
> > Hello,
>
> > This is probably a very easy to solve problem, but it's just about
> > beaten me down. I am trying to make a training script for my error-
> > awareness paradigm that can log inhibition and error-awareness
> > performance and then report these to the subject at the end of the
> > trial. The task is very simple and works fine, as does the performance
> > logging. I can't seem to get my summation object to work though-
> > everytime it gives me a 'type mismatch'. I've tried creating a
> > variable from the logging vars in a double format but that does not
> > fix it. Can someone take a look at my code and see what's up?
>
> > I start with the following setup inline and usertab code:
> > 'setup inline
> > set stopaccuracy = New Summation
> > set erroraware = New Summation
>
> > 'usertab
> > dim killme as integer
> > dim stopaccuracy as Summation
> > dim erroraware as Summation
> > dim ogperf as double
> > dim ogaware as double
>
> > My inline that logs awareness and performance, and (is supposed to)
> > fill the summation object with these information for reporting to the
> > subject, looks like this:
>
> > If c.GetAttrib("trialtype") = "lure" then
> > if TextDisplay1.RT = 0 then
> > c.SetAttrib "ogperf", 1
> > else
> > c.SetAttrib "ogperf", 0
> > end if
> > end if
>
> > if c.GetAttrib("awaretrial") = "1" and killme = 1 then
> > if TextDisplay1.RESP = "2" then
> > c.SetAttrib "ogaware", 0
> > else
> > c.SetAttrib "ogaware", 1
> > end if
> > end if
>
> > if c.GetAttrib("ogperf") = "0" then
> > killme = 1
> > else
> > killme = 0
> > end if
>
> > stopaccuracy.AddObservation c.GetAttrib("ogperf")
> > errorawareness.AddObservation c.GetAttrib("ogaware")
>
> > Debug.Print stopaccuracy.Mean
> > Debug.Print erroraware.Mean
>
> > c.SetAttrib "stopaccuracy", Format((stopaccuracy.Mean),"Percent")
> > c.SetAttrib "errorawareness", Format((errorawareness.Mean),"Percent")
>
> > It's these lines that give me the type mismatch:
> > stopaccuracy.AddObservation c.GetAttrib("ogperf")
> > errorawareness.AddObservation c.GetAttrib("ogaware")
>
> > Link to script:http://bit.ly/hKCcmo
>
> > Best,
> > Micah
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "E-Prime" group.> To post to this group, send email toe-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.
This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham.
This message has been checked for viruses but the contents of an attachment
may still contain software viruses which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.
--
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