每行有一个记录类型标识符
一些学生只提交一项任务
id 263 lee
a1 5 7 9 10
id 432 kate
a1 7 3 10 5
a2 6374
id 956 scott
a2 7867
id 765 melissa
a1 7954
a2 3984
创建一个数据 marks3a,每一个单独的mark 包含总评分记录
eg:
id name anum mark
432 kate 1 25
432 kate 2 20
[code:1ruazktg]data marks3a(drop=flag mark1-mark4);
retain id name;
input flag $ @@;
if upcase(flag)='ID' then input id name $;
else
do;
if upcase(flag)='A1' then anum=1;
else anum=2;
input mark1-mark4;
mark=sum(of mark1-mark4);
output;
end;
datalines;
id 263 lee
a1 5 7 9 10
id 432 kate
a1 7 3 10 5
a2 6 3 7 4
id 956 scott
a2 7 8 6 7
id 765 melissa
a1 7 9 5 4
a2 3 9 8 4
;[/code:1ruazktg]
[code:1k7mo1s2]data marks3a(drop=flag);
retain id name;
input flag $ @@;
if upcase(flag)='ID' then input id name $;
else
do;
if upcase(flag)='A1' then anum=1;
else anum=2;
input mark1-mark4;
mark=sum(of mark1-mark4);
output;
end;
datalines;
id 263 lee
a1 5 7 9 10
id 432 kate
a1 7 3 10 5
a2 6 3 7 4
id 956 scott
a2 7 8 6 7
id 765 melissa
a1 7 9 5 4
a2 3 9 8 4
;
proc sort data=marks3a;
by id;
run;
data temp(drop=anum);
merge marks3a(where=(anum=1) rename=(mark1-mark4=mark1_1-mark1_4 mark=sum_mark1))
marks3a(where=(anum=2) rename=(mark1-mark4=mark2_1-mark2_4 mark=sum_mark2));
by id;
run;[/code:1k7mo1s2]