Thank you Stas, Scott and Austin!
I guess Stas has pointed an even more serious problem that
confirm integer number 1e4
yields that 1e4 is not integer, while
capture assert mod(1e+04,1)==0
yields that it is.
which has implications beyond the -set obs- statement.
So it does matter how you check for being an integer?
Scott's solution is an obvious workaround, but the point is that 1e+04
should not be treated by Stata as an expression, but rather as a
single entity - a number. In fact it is treated this way in the input
statement:
.clear
.set obs 1
.input z
z
1. 1e+01
2. end
.list
And note that -input- does not evaluate the values as expressions,
e.g. an attempt to input 2+3 as an element of the input statement will
cause an error message "cannot be read as a number". So the parser
used in the input statement is properly programmed to recognize that
"e+" or "e-" after a number is a continuation of the same number,
while the regular parser does not do it same.
Best regards,
Sergiy Radyakin
On Thu, Oct 8, 2009 at 8:01 AM, Austin Nichols <[email protected]> wrote:
> Sergiy--
> This is such a longstanding property of the -set- command, probably
> most Stata users have internalized the behavior, but I suppose it
> should be documented in the help file for -set-. Note it applies
> equally to set memory, set tracedepth, etc.
>
> On Thu, Oct 8, 2009 at 5:20 AM, Scott Merryman <[email protected]> wrote:
>> This works:
>> . set obs `=1e+04'
>> obs was 0, now 10000
>>
>> I suppose the 1e+04 has to be evaluated first.
>>
>> Scott
>>
>>
>> On Wed, Oct 7, 2009 at 6:57 PM, Sergiy Radyakin <[email protected]> wrote:
>>> Dear All,
>>>
>>> how to explain this?
>>>
>>> version 10.1
>>> . display 1e+04
>>> 10000
>>> . capture confirm number 1e+04
>>> . display _rc
>>> 0
>>> capture assert mod(1e+04,1)==0
>>> . display _rc
>>> 0
>>> . clear
>>> . set obs 10000
>>> obs was 0, now 10000
>>> . set obs 1e+04
>>> '1e+04' found where integer expected
>>> r(198);
>>>
>>> So what is an integer then? (or what is 1e+04 if not an integer?)
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/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/statalist/faq
* http://www.ats.ucla.edu/stat/stata/