*---Purpose: Count the occurrence of certain value in a row and output  counts and percentage;

 

*---Test data;

DATA ONE;

  INPUT ID      v1 $      v2 $      V3 $     V4 $      V5 $;

  DATALINES;

1       E       E       E       .       3

2       E       .       .       2       E

;

RUN;

 

PROC SORT DATA=ONE;

  BY ID;

RUN;

 

DATA TWO;

  SET ONE;

  BY ID;

  TOTAL_COUNT=0;

  COUNT_E=0;

  ARRAY VARS (*) V1-V5;

  DO I=1 TO DIM(VARS);

    TOTAL_COUNT+1;

    IF VARS(I)='E' THEN COUNT_E+1;

    PCT_E=(COUNT_E/TOTAL_COUNT);

  END;

 

  FORMAT PCT_E PERCENT8.2;

  DROP I;

  IF LAST.ID THEN OUTPUT;

RUN;

 

PROC PRINT DATA=TWO;

RUN;