1、SAS数据集的操作第一次作业学号:200930980106 姓名: 何斌 年级专业: 10级统计1班 指导老师:肖莉1. 以下数据是调查15个学生是否学过四门课程(记为A、B、C、D)的资料,0表示没有学过,1表示已学过。0 0 0 1 m 1 1 0 0 f0 0 1 0 m 0 0 0 1 f0 1 1 0 f 1 1 0 0 m1 0 1 1 m 0 0 0 0 m0 1 1 0 f 1 1 1 1 f1 0 0 1 f 0 0 1 1 m1 0 1 1 m 1 0 1 1 f1 0 1 0 f(1) 对这组资料创建一SAS数据集,然后按男女分别生成两个SAS数据集。(2) 建立一新变量
2、NEW:先把是否学过4门课程的资料看成4 个元素的向量,并作为一个4位二进制数,然后转换为十进制数作为NEW的值。比如:(1011)可化为1*23+0*22+1*21+1*20=11。然后创建一个包含新变量和四门课得分的SAS数据集;并按NEW值从小到大的次序排列后输出。(3) 请统计一下15个学生中学过A、B、C、D四门课的各有多少人,并把结果存为SAS数据集后并打印输出。解答如下:(1)SAS程序如下所示:options nodate nonumber;data a1;input A B C D sex$;cards;0 0 0 1 m 1 1 0 0 f0 0 1 0 m 0 0 0 1
3、 f0 1 1 0 f 1 1 0 0 m1 0 1 1 m 0 0 0 0 m0 1 1 0 f 1 1 1 1 f1 0 0 1 f 0 0 1 1 m1 0 1 1 m 1 0 1 1 f1 0 1 0 f;run;data man women;set a1;select (sex);when (m) output man;when (f) output women;end;run;proc print data=a1;title -总数据集-;run;proc print data=man;title -男生数据-;run;proc print data=women;title -女生
4、数据-;run;得到结果如下:图1图2图3(2)SAS程序如下所示:data a2;set a1;drop sex;new=A*(2*3)+B*(2*2)+C*(2*1)+D;run;proc sort data=a2;by new;run;proc print data=a2;title -加入了new变量-;run;得到结果如下所示:图4(3)SAS程序如下所示:data a3;set a1;drop sex;run;proc print data=a3 noobs;title -各科目总学习人数-;sum A B C D;run;得到结果如下所示图52. 试用概率函数计算正态分布N(3,
5、9)的分布函数F(X)。XF(X)000010300解答如下:由于该正态分布的均值为3,标准差为3,故SAS编程如下:data b1;do x=0 to 3 by 0.1;fx=probnorm(x-3)/3);output;end;run;proc print data=b1;title1 -;title2 用概率函数计算正态分布N(3,9)的分布函数F(X);run;或者:data b1;Fx=0;do x=0 to 3 by 0.1;fx=probnorm(x-3)/3);Fx=Fx+fx;output ;end;run;proc print data=b1; run;得到结果如下所示:
6、图63. 试用分位数函数计算F分布的分位数。ndf ddf0.05 0.025 0.00511 1225121011010(满足)解答如下:SAS程序如下所示:data c1;do gailv=0.05 ,0.025 ,0.005;do ndf=1 to 5 by 1;do ddf=1 to 10 by 1;fenweishu=finv(gailv,ndf,ddf);output;end;end;end;run;proc print data=c1;title1 -;title2 用分位数函数计算F分布的分位数;run;得到结果如下所示:图74. 以下四行数据是四次记录下来的数据,每次从4 个
7、厂家(用A,B,C,D代表)生产的同类食品中,每个厂家抽取三包测量每包的数量。每一行开头三个数值是厂家A生产,以后依次是B、C、D生产的。72 74 69 61 61 65 62 65 70 85 76 6167 52 62 60 55 59 64 65 64 67 72 6057 66 72 72 43 43 63 66 72 56 75 9257 56 78 60 63 58 61 79 68 73 86 71(1) 请按数据形式输入后生成外部数据文件DB25.TXT.(2) 用DATA步调入外部文件DB25.TXT(用INFILE和INPUT语句)生成包括变量:TIME(次数),N(包的
8、序号),FACTORY(厂家)和NUMBER(数量)的SAS数据集(3) 请按以下要求输出(2)产生的SAS数据集:1. 只包含变量TIME,FACTORY和NUMBER;2. 对每个厂家的资料分别输出报告,要求每包食品的数量按小到大的次序排好.(4) 计算每个厂家的12包食品的平均数量,标准差,极差和总和等描述统计量;然后存贮为一个SAS数据集(包含4 个观测)。解答如下:(1)SAS程序如下所示:data DB25;do m=1 to 4;do factory=A,B,C,D;do n=1 to 3;input accounts;output;end;end;end;cards;72 74
9、 69 61 61 65 62 65 70 85 76 6167 52 62 60 55 59 64 65 64 67 72 6057 66 72 72 43 43 63 66 72 56 75 9257 56 78 60 63 58 61 79 68 73 86 71;run;proc print data=DB25;title1 -;title2 各厂的检测数据;run;PROC EXPORT DATA= WORK.DB25 OUTFILE= C:Documents and SettingsAdministrator桌面DB25.txt DBMS=TAB REPLACE; PUTNAMES
10、=YES;RUN;得到结果如下所示:图8(2)SAS程序如下所示:data DB_3; set DB25; file D:DB25.txt; put m factory$ n accounts ;run;data DB_4; infile D:DB25.txt; input m factory$ n accounts;run;proc print label; labelm=time;labelaccounts=number;run;得到结果如下所示:图10(3)1.SAS程序如下所示:data d3;set DB_3;drop n;run;proc print data=d3 noobs;t
11、itle -;run;得到结果如下所示:图112.SAS程序如下所示:data d3_2;set d3;keep factory number;run;proc sort data=d3_2;by factory number;run;proc print data=d3_2 noobs;title1 -;title2 对每个厂家的资料分别输出报告,每包食品的数量按小到大的次序排好; run;得到结果如下所示:图12(4)SAS程序如下所示:data d4;proc means data=d3_2 mean std range sum;class factory;run;proc print;title1 -;title2 计算每个厂家的12包食品的平均数量,标准差,极差和总和等描述统计量; run;得到结果如下所示:图125、书上第28页,1.4题(1)原数据集如下所示:X123456Pk1/61/61/61/61/61/6由E(X)= 计算得:E(X)=0.583由Var(X)= 计算得:Var(X)=0.208众数m0=1/6,中位数me=1/6(2)原数据集如下所示:X123456Pk1/61/121/121/63/123/12由E(X)= 计算得:E(X)= 0.6667由Var(X)= 计算得:Var(X)= 0.2139众数m0= 1/12,中位数me= 1/6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1