|
|
地板

楼主 |
发表于 2007-9-14 12:54:10
|
只看该作者
Re: 帮我看看这道题
可以这样:
data race;
input name: $15. birthday: mmddyy8. gender $ whichrace time: time8.;
format birthday mmddyy8. time time8.;
age=intck('year',birthday,today());
if (.<age<=16) then agegroup='Youth';
else if (17<=age<=49) then agegroup='Adult';
else if (50<=age) then agegroup='Senior';
datalines;
Smith,James 03-09-91 M 1 00:39:42
Smith,James 03-09-91 M 2 00:38:25
Anderson,Jim 05-27-79 M 1 00:36:10
Anderson,Jim 05-27-79 M 2 00:36:52
Milton,Karen 10-23-71 F 1 00:42:36
Milton,Karen 10-23-71 F 2 00:44:01
Cooper,Frances 02-13-82 F 1 00:46:47
;
run;
proc sql;
create table onlyrace as
select name, birthday, gender, whichrace,max(whichrace) as racetimes, time, age, agegroup from race
group by name
order by name, time;
quit;
data onlyrace;
set onlyrace;
retain besttime;
by name time;
if first.name then besttime=time;
format besttime time8.;
run;
data onlyrace;
set onlyrace;
by name;
retain time1-time2;
array ttime{2} time1-time2;
if first.name then
do i = 1 to 2;
ttime{i} = .;
end;
ttime{whichrace} = time;
if last.name;
format time1-time2 time8.;
drop i time;
run; |
|