With data like this I tend to 1) save as CSV for input to SAS and 2) make custom informats so that when the data is read Art is treated as 1 for the Art variable and 0 if not selected (for multiple response variables). Using CSV usually a brief examination shows which row the data starts on so I can set firstobs on a file statement, and the columns should be relatively consistent so I know that the first variable is the respondent ID, the second is the "want to take art" variable, third is "want to take science and so forth. If there is NO possibility for the ART response to occur in a different column you could even likely get by with a common informat. proc format; invalue Topic 'Art','Science','History','Spanish','French' = 1 other = 0; run; data raw; infile "filename" dlm=',' dsd ; /* remember I said I saved the Excel as CSV*/ informat respondent best8.; informat Art Science History Spanish French Topic. ; input respondent Art Science History Spanish French; run; With 0/1 coded variables then the SUM of a question is the count of yes and the mean is percent yes. Personally I would prefer to have the individual variables. It makes it so much easier to answer questions like "How many students wanted both Art and Science" as a quick data step can create the composite variable (addition: Value 2= Both 1= only 1 and 0 = neither, a custom format again could display similar text for those values). Plus modeling of other sorts works way better with one record per respondent in general. A brief summary: proc tabulate data=raw; var Art Science History Spanish French; table Art Science History Spanish French , Sum='Yes'*f=best6. mean='% Yes'*f=percent10.2; run;
... View more