BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Cruise
Ammonite | Level 13

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

 

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

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

3 REPLIES 3
Reeza
Super User

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);
Cruise
Ammonite | Level 13

@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? 

RickAster
Obsidian | Level 7

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.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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