[bit.listserv.sas-l] Attention PROC TABULATE gurus

AHMED@PANAM.BITNET (Zulfi Ahmed, Tr. & Supp. Specialist) (02/08/90)

Hi folks, I have survey data that was distributed to different classes.  The
survey record itself has the class number and 10 questions with answers
ranging from 1 to 5.

****************************************
section q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 =>This line is not in the data file
1111    1  1  1  2  3  4  5  5  3  3
2222    2  3  4  5  2  1  1  1  1  3
.
.
1111    1  1  1  1  3  4  2  3  4  1
***************************************

I need to determine the frequency of answers to each question by class, i.e,
I would llike a report for each class on a separate page with Q!-Q10 going
down vertically, and frequency of ocuurrence of the choices going horizontally.
Following is a desired format.

             SECTION 1111
       1   2    3   4   5
__________________________
Q1     20  13   11  11  10
Q2                       .
Q3                       .
.                        .
.                        .
Q10                      .
__________________________


I have used the following which gives me a report of frquency by each class
but it is not in  the format I want:
*************************************************************
PROC TABULATE;
 CLASS SECTION Q1-Q10 MISSING F=8.2;
 TABLE (Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10)*(N)/RTS=12 CONDENSE;
 BY CLASS;
*************************************************************


I have racked my brains with the PROC TABULATE section of the manual without
luck.  Any help would be appreciated.

HIS@NIHCU.BITNET (Howard Schreier) (02/08/90)

> Hi folks, I have survey data that was distributed to different classes.  The
> survey record itself has the class number and 10 questions with answers
> ranging from 1 to 5.
>
> ****************************************
> section q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 =>This line is not in the data file
> 1111    1  1  1  2  3  4  5  5  3  3
> 2222    2  3  4  5  2  1  1  1  1  3
> .
> .
> 1111    1  1  1  1  3  4  2  3  4  1
> ***************************************
>
> I need to determine the frequency of answers to each question by class, i.e,
> I would llike a report for each class on a separate page with Q!-Q10 going
> down vertically, and frequency of ocuurrence of the choices going horizontally
> Following is a desired format.
>
>              SECTION 1111
>        1   2    3   4   5
> __________________________
> Q1     20  13   11  11  10
> Q2                       .
> Q3                       .
> .                        .
> .                        .
> Q10                      .
> __________________________
>
>
> I have used the following which gives me a report of frquency by each class
> but it is not in  the format I want:
> *************************************************************
> PROC TABULATE;
>  CLASS SECTION Q1-Q10 MISSING F=8.2;
>  TABLE (Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10)*(N)/RTS=12 CONDENSE;
>  BY CLASS;
> *************************************************************
>
>
> I have racked my brains with the PROC TABULATE section of the manual without
> luck.  Any help would be appreciated.

I think the problem is that  the  table  you  want  requires
"crossing"  an  additional  CLASS  variable which you do not
have in your data set.  The only way I see to  get  the  job
done is to transpose the data a bit before getting into PROC
TABULATE.  This seems to work:

   data try;
   input section q1-q10;
   array q(*) q1-q10;
   do qnum = 1 to dim(q);
      response = q(qnum);
      output; keep section qnum response;
      end;
   cards;
   1111 1 1 1 2 3 4 5 5 3 3
   2222 2 3 4 5 2 1 1 1 1 3
   1111 1 1 1 1 3 4 2 3 4 1
   ;

   proc tabulate;
    class section qnum response;
    table section,qnum,response*n*format=4.;

Notice that the creation of a separate page for each section
is done within the TABLE statement, so that BY processing is
not necessary.

For anyone who is going to use PROC  TABULATE,  I  recommend
getting  and  using  SAS  Guide to TABULATE Processing, 1987
Edition.  It gives newer and more extensive documentation.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\   Howard Schreier, U.S. Dept. of Commerce, Washington    /
|          (Using Version 5 under IBM OS MVS/XA)           |
/   BITNET: HIS@NIHCU          INTERNET: HIS@CU.NIH.GOV    \
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/