DATA Step, Macro, Functions and more

PERCENT OF MISSING BY EACH GROUP VARIABLES

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 125
Accepted Solution

PERCENT OF MISSING BY EACH GROUP VARIABLES

I'd like to get an idea of an extent of missing for each group of questions (variables) in my survey data. P1-P10, B1-B2 and G1-G5 are example of series of questions with missing (no response from study particpants). I believe there is lot more efficient way of doing this.

 

CP=NMISS(OF P01-P10)+N(OF P01-P10);
CB=NMISS(OF B1-B2)+ N(OF B1-B2);
CG=NMISS(OF G1-G5)+ N(OF G1-G5);

NP=NMISS(OF P01-P10);
NB=NMISS(OF B1-B2); 
NG=NMISS(OF G1-G5); 
P_MISSING_PERCENT=NP/CP*100; B_MISSING_PERCENT=NB/CB*100;
G_MISSING_PERCENT=NG/CG*100;

Any suggestions please?

Thanks

 


Accepted Solutions
Solution
‎06-23-2017 09:06 AM
Super User
Posts: 17,784

Re: PERCENT OF MISSING BY EACH GROUP VARIABLES

Well, I think you can do it in one, but besides that it's the same calculation. I don't think you're saving very much here though. 

 

array p(*) p01-p10;

p_missing = nmiss(of p(*)) / dim(p);

View solution in original post


All Replies
Solution
‎06-23-2017 09:06 AM
Super User
Posts: 17,784

Re: PERCENT OF MISSING BY EACH GROUP VARIABLES

Well, I think you can do it in one, but besides that it's the same calculation. I don't think you're saving very much here though. 

 

array p(*) p01-p10;

p_missing = nmiss(of p(*)) / dim(p);
Frequent Contributor
Posts: 125

Re: PERCENT OF MISSING BY EACH GROUP VARIABLES

@Reeza

 

CP=NMISS(OF P01-P10)+N(OF P01-P10);

Is there straightforward function to count the number of columns instead doing nmiss+n as shown in above code? 

Contributor
Posts: 22

Re: PERCENT OF MISSING BY EACH GROUP VARIABLES

If you are really asking how many variables are in the abbreviated variable list P01-P10, the answer will always be 10. The data step automatically creates the variables if they do not exist already in order to include them in the list.

 

If you are looking for an answer to the more general question, I don't know of a function to count the number of variables in a list. It is possible to define an array that contains the variable list, and then the DIM function will count the elements in the array:

 

array list(*) p01-p10;
cp = dim(list);

I wouldn't argue that this simplifies anything, though.

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 121 views
  • 1 like
  • 3 in conversation