126.DATA | INPUT | PROC TRANSPOSE | PREFIX | ASSIGNMENT STATEMENT

DATA | INPUT | PROC TRANSPOSE | PREFIX | ASSIGNMENT STATEMENT 


 /*Use PROC TRANSPOSE to convert this dataset into a 

format where each student has subjects as columns (wide format).*/

/*Add a new column to calculate the Average Marks per student.*/


DATA STUDENT_MARKS;

 INPUT Student_ID Subject$ Marks;

 DATALINES;

401 Math 85

401 Science 78

401 English 88

402 Math 90

402 Science 85

402 English 82

;

RUN;PROC PRINT;RUN;


OUTPUT:

Obs Student_ID Subject Marks
1 401 Math 85
2 401 Science 78
3 401 English 88
4 402 Math 90
5 402 Science 85
6 402 English 82


PROC TRANSPOSE DATA=STUDENT_MARKS OUT=TRAN_MARKS(DROP=_NAME_) PREFIX=SUBJECT_;

 BY STUDENT_ID;

 ID SUBJECT;

 VAR MARKS;

RUN;

PROC PRINT;RUN;


OUTPUT:

Obs Student_ID SUBJECT_Math SUBJECT_Science SUBJECT_English
1 401 85 78 88
2 402 90 85 82


DATA AVG_MARKS;

 SET TRAN_MARKS;

 AVG_MARKS=MEAN(OF SUBJECT_:);

RUN;

PROC PRINT;RUN;


OUTPUT:

Obs Student_ID SUBJECT_Math SUBJECT_Science SUBJECT_English AVG_MARKS
1 401 85 78 88 83.6667
2 402 90 85 82 85.6667


PRACTICE AND COMMENT YOUR CODE: 

-->PLEASE FOLLOW OUR BLOG FOR MORE UPDATES.

TO FOLLOW OUR TELEGRAM CHANNEL CLICK HERE

Comments