Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: problem with `r(min)' and `r(mean)' macros
From
mario fiorini <[email protected]>
To
[email protected]
Subject
Re: st: problem with `r(min)' and `r(mean)' macros
Date
Mon, 28 Jan 2013 16:14:24 +0100
thanks Nick,
I could sense it was a precision issue, but I was very confused
because it was only there for `r(min)' and not `r(max)'. [and sorry
for the obviously stupid `r(mean)' check].
now I understand both precision issues.
Mario
On 28 January 2013 16:01, Nick Cox <[email protected]> wrote:
> This is a precision issue, biting you twice over.
>
> First off, there is a loss of precision possible with using e.g.
> `r(min)' rather than r(min) which is roughly parallel to the lower
> precision of macros compared with scalars.
>
> !!! Don't use local macros if you seek maximum precision with non-integers. !!!
>
> Second, testing for exact equality can be tricky at the best of times
> for reasons often rehearsed on this list and elsewhere.
>
> . search precision
>
> in an up-to-date Stata and start with Bill Gould's blog postings.
>
> Try this instead:
>
> set obs 1000
> gen var1 = runiform()
> su var1
> scalar max = r(max)
> scalar min = r(min)
> count if var1 == max
> count if var1 == min
>
> Whether the mean of random numbers on the unit interval is equal to
> any particular random number is surely of less interest.
>
> Nick
>
>
> On Mon, Jan 28, 2013 at 2:47 PM, mario fiorini <[email protected]> wrote:
>> Dear statalist,
>> I am summarising a variable and then trying to use the `r(.)' macros
>> However, in some instances Stata does not seem to find any variables
>> that take the `r(min)' and `r(mean)' values. For some reason, it does
>> work with `r(max)' instead.
>> The code below should clarify the problem. When I run it, I always get
>> that no observation takes the min or the mean (why???), but there is
>> an observation that takes the max.
>> The problem does not depend on whether I use the original `r(min)' or
>> a macro=`r(min)'.
>> If it matters I am using a mac osx 10.8 with Stata 12.1 MP.
>> Any hint would be appreciated because it is driving me crazy.
>> Mario
>>
>> // Start
>> clear
>> set obs 1000
>> ge id = _n
>> ge var1 = uniform()
>> su var1
>> local LCmin =`r(min)'
>> local LCmean =`r(mean)'
>> local LCmax =`r(max)'
>>
>> count if var1==`LCmin'
>> count if var1==`LCmean'
>> count if var1==`LCmax'
>> // Ends
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/faqs/resources/statalist-faq/
> * http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/