Statalist


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

Re: st: check whether a variable has any missing values


From   Jacob Wegelin <jacob.wegelin@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: check whether a variable has any missing values
Date   Sat, 28 Mar 2009 15:37:57 -0400

Dear Eva,

Thanks. How then does one turn the output of -count if missing(bad)-
into a value that one can use in an -assert- statement?

. count if missing(bad)
    1

. count if missing(good)
    0

. local howManyMissing=count if missing(bad)
count not found
r(111);

. local junk: count if missing(bad)
count not allowed
r(101);

. scalar junk=count if missing(bad)
count not found
r(111);

Jake

On Sat, Mar 28, 2009 at 3:12 PM, Eva Poen <eva.poen@gmail.com> wrote:
> Jacob,
>
> it's a lot easier than you think. I believe you are confused about the
> missing() function.
>
> di missing(bad)
>
> instructs Stata to display whatever missing(bad) returns, which will
> be zero if missing(bad) evaluates to fale, and one if it evaluates to
> true. Because bad is a variable, missing(bad) is actually interpreted
> by Stata as missing(bad[1]), i.e. the value of the first observation
> is substituted for the variable.
>
> What you want is simply
>
> count if missing(bad)
>
> Hope this helps,
> Eva
>
>
> 2009/3/28 Jacob Wegelin <jacob.wegelin@gmail.com>:
>> The following program checks whether a variable contains any missing
>> values. This seems an awkward way to do it. Does a more elegant
>> approach exist? I haven't found an extended macro function that takes
>> care of this, and the function -missing()- does not do the trick.
>>
>> clear all
>> capture program drop checkIfAnyMissing
>> program define checkIfAnyMissing, rclass
>>   return local variable="`1'"
>>   qui tabulate `1'
>>   local howManyObs=`r(N)'
>>   qui tabulate `1', missing
>>   local howManyRowInclMissing=`r(N)'
>>   if (`howManyObs'== `howManyRowInclMissing') {
>>      return local answer="`1' has no missing values"
>>      return scalar missing=0
>>      }
>>   else {
>>      return local answer="`1' has at least one missing value"
>>      return scalar missing=1
>>      }
>> end
>>
>> input bad good str8 strbad str8 strgood
>> 0 0 0 0
>> . 1 "" 1
>> end
>>
>> list
>>
>> di missing(bad)
>>
>> di missing(good)
>>
>> checkIfAnyMissing bad
>> return list
>>
>>
>> checkIfAnyMissing good
>> return list
>>
>>
>> checkIfAnyMissing strbad
>> return list
>>
>>
>> checkIfAnyMissing strgood
>> return list
>>
>> Thanks for any tips
>>
>> Jacob Wegelin
>> Assistant Professor
>> Department of Biostatistics
>> Virginia Commonwealth University
>> 730 East Broad Street Room 3006
>> P. O. Box 980032
>> Richmond VA 23298-0032
>> *
>
> *
> *   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index