Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: RE: surprising behaviour in -lookfor-?


From   Jeph Herrin <[email protected]>
To   [email protected]
Subject   Re: st: RE: surprising behaviour in -lookfor-?
Date   Mon, 26 Jan 2009 18:59:35 -0500


As reflected in the subject line, "bug" was probably
the wrong word for what I found.

Obviously, different kinds of comments are allowed in
different places. But -display- for instance returns an
error if this is typed interactively:

 di age /* sex */

whereas -lookfor- just does something different in different
contexts. It is the latter behaviour that I object to.

Just as obviously, my objection to something is no reason
for StataCorp or anyone else to pay me the slightest heed.
Registering objections is simply human nature.

cheers,
Jeph




Nick Cox wrote:
I think you are now introducing different issues, in so far as do files
are executed a little differently from commands issued one by one
interactively.
Evidently end-of-line comments are stripped out of do files, but allowed
in -lookfor- in so far as (by accident) they are consistent with its
design. Remember, do-files are a primitive form of -program-.
If there's an issue, it is one of which kind of comments are allowed
where.
As someone once said, "The price of freedom is eternal vigilance". In
the case of -lookfor-, its very general syntax may imply occasional
surprises. But "Don't do that then!" is often the best advice.
I think a real question is this: If you think -lookfor- is buggy, how
would you suggest StataCorp fix it? What should be its syntax if the
price is that it never give misleading results?
(Don't tell Sergiy about this: he should be able to think up weird input
for -lookfor- that would crash Stata.) Nick [email protected]

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jeph Herrin
Sent: 26 January 2009 22:54
To: [email protected]
Subject: Re: st: RE: minor bug in -lookfor-?

Well, I did put a question mark in the subject line...

But how does the following sit with you?


. lookfor age /* sex */

               storage  display     value
variable name   type   format      label      variable label
------------------------------------------------------------------------
--------------------------------------------------------------
age             byte   %8.0g                  Age
sex             byte   %8.0g                  Sex


As you say, -lookfor- is functioning exactly as advertised.
On the other hand, one comes to expect certain behavior from
Stata commands.  More, if I paste the above line into the do-editor
and -do- it:

. lookfor age /* sex */

               storage  display     value
variable name   type   format      label      variable label
------------------------------------------------------------------------
--------------------------------------------------------------
age             byte   %8.0g                  Age


I would argue that it's good style, if nothing else, that a
command that runs interactively and in a do-file without
error should return the same results in both contexts.

And yes, I have used -lookfor- in -do-files before, it is a
handy way of grabbing a list of variables and storing them in
a local.

Thoughts?








Nick Cox wrote:
I've got to say that I don't regard this as a bug.
-lookfor- does not claim to support options, nor does it do that. So,
there's no inconsistency either way in that respect.
Nor do I think that there is a good reason to ban commas as input, if
that were to be suggested. Commas can be part of strings, no question.

As -lookfor- behaves reasonably even when Jeph treats it not quite as
intended, wherein lies the bug? Nick [email protected]
Jeph Herrin

For what it's worth, I was surprised to discover that

  lookfor myvar, fullnames

produces the same result as

  lookfor myvar fullnames

That is, if you add any options to -lookfor-, it ignores the
comma and treats the options as search strings.

On the one hand, the documentation clearly indicates there
are no options. On the other, it often happens that I try
options that I think might work and expect Stata complain
if they are invalid.

In this case, I abbreviated -fullnames- to -fu-, and was finding variables that in no way matched -myvar-. Took me a while to
puzzle out.

*
*   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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index