全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1203 2
2012-07-10

Supposeyou work for the UC basketball program. Your boss gives you a file that list the dates

    of all Big East conference basketballgames, the home team, visiting team, home score and

    visitors score:

12/10/2005

          Cincinnati     Syracuse        73 89

          Georgetown     St Johns        92 79

          Louisville     Depaul          59 58

12/17/2005

          Louisville     Marquette       76 72

          Villanova      Pittsburgh      77 76

01/05/2006

         Rutgers        Cincinnati      54 71


a)  Write a SAS program to read the data (sayA:\SCORES.TXT) into a SAS data set that conatins

      date, home team, visiting team, homescore and visitor score for each game.

第一题我写的程序

datascores;INFORMATdate mmddyy10. hometeam $10.visitingteam $10. homescore visitscore;infile'D:\scores.txt';inputdate hometeam $ visitingteam $ homescore visitorscore ;procprint data=scores;FORMATdate mmddyy10.;run;
第二题是Writea SAS program that will compute the number of wins and losses for each team.求指点

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-7-10 20:39:46
飘过,高手快来帮帮忙啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-11 10:47:33
代码有些长,你自己在优化一下吧

data work.a;
        length date 8. hometeam $20. visitingteam $20.;
        input date mmddyy10. hometeam $ visitingteam $ 28-38 homescore visitorscore;
        format date yymmdd10.;
        datalines;
12/10/2005  Cincinnati     Syracuse        73 89
12/10/2005  Georgetown     St Johns        92 79
12/10/2005  Louisville     Depaul          59 58
12/17/2005  Louisville     Marquette       76 72
12/17/2005  Villanova      Pittsburgh      77 76
01/05/2006  Rutgers        Cincinnati      54 71
;
run;

data work.b;
        set work.a;
        if homescore > visitorscore then do;
                homewin = "胜";
                visitorwin = "负";
        end;else do;
                homewin = "负";
                visitorwin = "胜";
        end;
         
run;

data work.c(keep = hometeam homewin
                        rename = (hometeam=teamwin homewin=teamresult));
        set work.b;
run;

data work.d(keep = visitingteam visitorwin
                        rename = (visitingteam=teamwin visitorwin=teamresult));
        set work.b;
run;

data work.e;
        set work.c work.d;
run;

data work.temp(drop = i);
        do i = 1 to 2;
                if i = 1 then do;
                        teamresult = "胜";
                end;else do;
                        teamresult = "负";
                end;
                output;
        end;
run;
       

proc sql noprint;
        create table work.f as
                select distinct teamwin
                from work.e;

        create table work.g as
                select a.teamwin,
                        b.teamresult
                from work.f as a,work.temp as b
                order by a.teamwin,b.teamresult;

        create table work.h as
                select teamwin ,teamresult,count(teamresult) as count
                from work.e
                group by teamwin ,teamresult
                order by teamwin ,teamresult;
                       
quit;

data work.i;
        merge work.g work.h;
        by teamwin teamresult;
run;

data work.result;
        set work.i;
        if missing(count) then count=0;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群