Good idea(I hope I didn't offend you):I tried to imitate it data a; input id name $7-12 semester subject1 subject2 subject3 grade; cards; 22345 Alex 1 90 87 93 4.6 22345 Alex 2 84 75 96 4.1 26534 James 1 76 89 73 3.8 26534 James 2 0 0 0 0 45663 Mervin 1 78 74 80 3 45663 Mervin 2 80 84 79 3.7 ; run; proc sql noprint; select max(m) into :m from (select count(*) as m from a group by id,name); quit; %put &m; proc summary data=a; by id name; output out=b idgroup(out[&m](semester subject1 subject2 subject3 grade)=); run; data c; retain id name semester_1 subject1_1 subject2_1 subject3_1 grade_1 semester_2 subject1_2 subject2_2 subject3_2 grade_2; set b; drop _type_ _freq_; run;
... View more