收藏 分销(赏)

SAS数据集的操作.docx

上传人:xrp****65 文档编号:9845053 上传时间:2025-04-10 格式:DOCX 页数:11 大小:103.64KB 下载积分:10 金币
下载 相关 举报
SAS数据集的操作.docx_第1页
第1页 / 共11页
SAS数据集的操作.docx_第2页
第2页 / 共11页


点击查看更多>>
资源描述
第一次作业 学号:200930980106 姓名: 何斌 年级专业: 10级统计1班 指导老师:肖莉 1. 以下数据是调查15个学生是否学过四门课程(记为A、B、C、D)的资料,0表示没有学过,1表示已学过。 0 0 0 1 m 1 1 0 0 f 0 0 1 0 m 0 0 0 1 f 0 1 1 0 f 1 1 0 0 m 1 0 1 1 m 0 0 0 0 m 0 1 1 0 f 1 1 1 1 f 1 0 0 1 f 0 0 1 1 m 1 0 1 1 m 1 0 1 1 f 1 0 1 0 f (1) 对这组资料创建一SAS数据集,然后按男女分别生成两个SAS数据集。 (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 f 0 0 1 0 m 0 0 0 1 f 0 1 1 0 f 1 1 0 0 m 1 0 1 1 m 0 0 0 0 m 0 1 1 0 f 1 1 1 1 f 1 0 0 1 f 0 0 1 1 m 1 0 1 1 m 1 0 1 1 f 1 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 '------女生数据------'; 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; 得到结果如下所示 图5 2. 试用概率函数计算正态分布N(3,9)的分布函数F(X)。 X F(X) 0.00 0.10 … 3.00 解答如下: 由于该正态分布的均值为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 3. 试用分位数函数计算F分布的分位数。 ndf ddf 0.05 0.025 0.005 1 1 … 1 2 … 2 … 5 1 2 … 10 1 … 10 … 10 (满足) 解答如下: 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; 得到结果如下所示: ………… 图7 4. 以下四行数据是四次记录下来的数据,每次从4 个厂家(用A,B,C,D代表)生产的同类食品中,每个厂家抽取三包测量每包的数量。每一行开头三个数值是厂家A生产,以后依次是B、C、D生产的。 72 74 69 61 61 65 62 65 70 85 76 61 67 52 62 60 55 59 64 65 64 67 72 60 57 66 72 72 43 43 63 66 72 56 75 92 57 56 78 60 63 58 61 79 68 73 86 71 (1) 请按数据形式输入后生成外部数据文件DB25.TXT. (2) 用DATA步调入外部文件DB25.TXT(用INFILE和INPUT语句)生成包括变量:TIME(次数),N(包的序号),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 69 61 61 65 62 65 70 85 76 61 67 52 62 60 55 59 64 65 64 67 72 60 57 66 72 72 43 43 63 66 72 56 75 92 57 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 Settings\Administrator\桌面\DB25.txt" DBMS=TAB REPLACE; PUTNAMES=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; label m='time'; label accounts='number'; run; 得到结果如下所示: ……… 图10 (3) 1.SAS程序如下所示: data d3; set DB_3; drop n; run; proc print data=d3 noobs; title '------------------'; run; 得到结果如下所示: 图11 2.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; 得到结果如下所示: 图12 5、书上第28页,1.4题 (1)原数据集如下所示: X 1 2 3 4 5 6 Pk 1/6 1/6 1/6 1/6 1/6 1/6 由E(X)=16n=16Pk×X 计算得:E(X)=0.583 由Var(X)= 15n=16X-E(X)2 计算得:Var(X)=0.208 众数m0=1/6,中位数me=1/6 (2)原数据集如下所示: X 1 2 3 4 5 6 Pk 1/6 1/12 1/12 1/6 3/12 3/12 由E(X)=16n=16Pk×X 计算得:E(X)= 0.6667 由Var(X)= 15n=16X-E(X)2 计算得:Var(X)= 0.2139 众数m0= 1/12,中位数me= 1/6
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服