David Kantor et al.:
I agree that testing sum=0 is inappropriate, and there is no need to
invoke -summarize- and all its machinery when -count- will do; but I
think David Kantor does not mean
capture confirm `var' == 0
but rather
capture assert `var' == 0
as the first will always fail.
Given that Maarten and I have both posted programs to handle the
string variables, David Elliot's program need not be fixed, I think.
On 7/6/07, David Kantor <[email protected]> wrote:
David Elliot wrote in response to the question from Guillermo Villa:
[...]
>        quietly summarize `var'
>        if `r(sum)' == 0  { // r(sum) is returned by summarize
>             drop `var'
>             display as txt "Dropping " as result "`var'"
>            }
[...]
I don't think that testing `r(sum)' == 0 is appropriate. This
indicates that the sum of the values is 0. I think you really want to
test whether all the values are 0. And it's easy to construct an
example where the sum is 0 but not all values are 0.
I would suggest...
capture confirm `var' == 0
if ~_rc {
  drop `var'
}
Another thing you may want to test is whether r(sd) ==0 after a
-summarize-, which tells you that the values are constant.
Also note that the quotes around r(sum) were unnecessary, though that
is a moot point.
HTH
--David
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/