[EpiData-list] How to count the number of missing values in an
observation/record/row
epidata-list at lists.umanitoba.ca
epidata-list at lists.umanitoba.ca
Thu Jun 13 07:44:26 CDT 2013
I assume you are doing this in Analysis. The solution is similar for a .chk file, but the syntax is different. It is also a bit tricky doing this in a .chk file because values can be changed after the calculation is done if you are not careful.
* c is count of non-missing variables
* s is sum of non-missing variables
* score is final score (average of non-missing variables)
gen c=0
gen s=0
if var1 <> . then c=c+1
if var1 <> . then s=s+var1
if var2 <> . then c=c+1
if var2 <> . then s=s+var2
if var3 <> . then c=c+1
if var3 <> . then s=s+var3
if var4 <> . then c=c+1
if var4 <> . then s=s+var4
if var5 <> . then c=c+1
if var5 <> . then s=s+var5
gen score = s/c
if you do not have any defined missing values, you can also calculate c this way:
c = 5-mv(var1)-mv(var2)-mv(var3)-mv(var4)-mv(var5)
and you can also calculate s this way:
s=iif(var1<>. , var1,0)+iif(var2<>. , var2,0)+iif(var3<>. , var3,0)+iif(var4<>. , var4,0)+iif(var5<>. , var5,0)
Check the help for these functions to see how they work: mv() and iif()
Jamie
On 2013-06-13, at 3:39 AM, epidata-list at lists.umanitoba.ca wrote:
>
> Details of my problem:
>
> My checklist contains 5 variables. Each variable is given a score (0,1,2),
> but in some records, a few variables are left blank because they are not
> relevant. The final score is calculated by dividing the sum of score of
> each variable (don't take the missing into account) by the 'total number of
> entered variables'.
> id var1 var2 var3 var4 var5
> 1 2 1 1 0 final score =
> (2+1+1+0)/4 ( I use the command 'ignoremissing' to get the sum)
> 2 2 2 2 1 1 final score =
> (2+2+2+1+1)/5
> 3 1 1 final score=(1+1)/2
More information about the EpiData-list
mailing list