Using Transpose and array we can get the result: proc transpose data=have out=want name=ID; ID ID; VAR Q1-Q5; run; data want; set want; i=0; array Answer(1) Correct_Answer; array Candidate(3) Candidate1-Candidate3; do i = 1 to 3; if Answer[1] = Candidate[i] then do; Candidate[i] = 1; end; else do; Candidate[i] = 0; end; end; drop i; run; proc transpose data=want name=ID; ID ID; VAR Candidate1-Candidate3; run;
... View more