SAS上机练习题全部含参考答案.docx
《SAS上机练习题全部含参考答案.docx》由会员分享,可在线阅读,更多相关《SAS上机练习题全部含参考答案.docx(43页珍藏版)》请在冰豆网上搜索。
![SAS上机练习题全部含参考答案.docx](https://file1.bdocx.com/fileroot1/2022-10/29/0b303b43-b5eb-4741-a8af-b1509d84155e/0b303b43-b5eb-4741-a8af-b1509d84155e1.gif)
SAS上机练习题全部含参考答案
(一)
1、SAS常用的窗口有哪三个?
请在三个基本窗口之间切换并记住这些命令或功能键
2、请在PGM窗口中输入如下几行程序,提交系统执行,并查看OUTPUT窗和LOG窗中内容,注意不
同颜色的含义;并根据日志窗中的信息修改完善程序。
DATSEX0101;
INPUTT
NAME$
AGESEX;
CARDS;
XIAOMIN
19
1
LIDONG
20
1
NANA
18
2
j
PRODPRONTDATS=EX1;
RUN;
PROCPRINTDATA=
=EX1;
VARNAMEAGE;
RUN;
3、将第2题的程序、结果及日志保存到磁盘。
4、试根据如下例1的程序完成后面的问题:
表1某班16名学生3门功课成绩表如下问题:
1)建立数据集;
2)打印至少有1门功课不及格同学的信息;(提示,使用if语句)
参考程序:
dataa;
inputidshwlbl;cards;
83687165
84746168
85737546
86798079
87757168
84858587
85787975
86807679
87858082
88777175
89677371080758170118705475
83706684
84627365099827079
j
run;datab;
I—
seta;
ifsh<60orwl<60orbl<60thenoutput;run;
procprintdata=b;varidshwlbl;run;
表2销售数据
开始时间
终止时间
费用
2005/04/28
25MAY2009
$123,345,000
20050918
05OCT2009
$33,234,500
2007/08/12
22SEP2009
$345,600
20040508
30JUN2009
$432,334,500
提示:
(格式化输入;数据之间以空格分隔,数据对齐;注意格式后面的长度应以前一个位置结束开始计算,如果读入错误,可试着调整格式的宽度;显示日期需要使用输出格式)
开始时间,输入格式yymmdd10.
终止时间,输入格式date10.
费用,输入格式dollar12.
5、根据下列数据建立数据集
参考程序:
dataa;
inputx1yymmdd10.x2date10.x3dollar13.cards;
2005/04/2825MAY2009$123,345,0002005091805OCT2009$33,234,5002007/08/1222SEP2009$345,6002004050830JUN2009$432,334,500
run;
procprint;run;
procprint;
formatx1yymmdd10.x2date9.x3dollar13.run;
6、手机号码一编码规则一般是:
YYY-XXXX-ZZZZ,其YYY为号段;XXXX—般为所在地区编码;
ZZZZ为对应的个人识别编号。
下面有一组电话号码(来源于网络,末位以X替换),请用程序完成下
列要求:
(1)分别列出属于联通、移动、电信的号码;
(2)分别提取地区编号及个人识别编号。
(提示:
列输入方式或者字符串操作)
说明:
移动:
134-139、150、151、152、157、158、159、188联通:
130、131、132、155、156电信:
133、153、180、189
手机号码
手机号码
1508320464X
1313654836X
1510291126X
1351425709X
1339644156X
1303612231X
1532464828X
1383824855X
1365721647X
1522322763X
1523105754X
1357851051X
1592624347X
1508311759X
1331237668X
1327313520X
1370048578X
1556443719X
1507244457X
1804346016X
1321246707X
1513441713X
1368464734X
1308279203X
1394913242X
1897876466X
参考程序:
dataa;
inputy1-3x$4-7z$8-11;
if134<=y<=139oryin(150,151,152,157,158,159,188)thenygrp=■移动’;
ifyin(130,131,132,155,156)thenygrp='联通,;
ifyin(133,153,180,189)thenygrp=,电信,;
cards;
1508320464X
1510291126X
1339644156X
100000
1513441713X
1308279203X
1897876466X
procprintrun;
7、下表是某班学生几门功课的成绩,其中形势课是考查课,其它均为考试课。
请完成以下处理并且保存程序、结果和日志:
(注意函数在DATASTEP中使用的位置)
(1)用Mean()函数求出每位同学的平均分,将其保存在变量中;
(2)用sum()函数或者表达式求出每位同学的总分,将其保存在变量中;
(3)如果每门考试课权重是0.75,每门考查课权重为0.25,试求每位同学的加权平均分;
(4)将数据集保存为永久数据集,保存位置为“”
(5)调用上面的永久数据集,并将男、女生的成绩分别保存在数据集Dmale和Dfemale中
表3某班同学几门功课的成绩
学号
性别
(0=女,1=男)
高数
生理
人解
数理统计
形势(考查)
0083
1
73
73
64
74
75
0414
1
90
79
71
85
78
0564
1
97
87
89
91
80
0774
1
40
60
61
65
75
0873
1
68
65
60
76
75
0874
1
74
68
56
60
75
0875
1
73
46
65
66
87
0876
1
79
79
74
89
87
0877
1
75
68
55
60
70
0878
1
76
60
64
71
80
0880
1
81
73
30
75
82
0881
1
76
81
84
89
78
0883
1
77
60
60
66
75
0884
0
85
87
84
85
90
0885
0
78
75
62
66
80
0886
0
80
79
77
73
83
0887
0
85
82
31
84
80
0888
0
77
75
74
67
80
0889
0
67
71
71
69
90
0890
0
75
70
75
69
80
0891
0
69
76
76
79
90
0892
0
66
71
60
60
78
0893
1
70
84
75
80
85
0894
1
62
65
65
69
81
0895
1
91
78
61
66
78
0896
1
51
60
42
44
78
0898
1
67
73
67
73
85
0899
1
79
72
78
68
80
0900
1
76
68
63
84
90
0901
0
81
70
70
82
79
参考程序:
libnamepb"D:
\mydata\";datapb.score;
inputid$xbgsslrjsltjxs;mscore=mean(ofgsslrjsltjxs);tscore=sum(ofgsslrjsltjxs);
wmscore=((gs+sl+rj+sltj)*0.75+xs*0.25)/(0.75*4+0.25);cards;
008317373647475
041419079718578
056419787899180
077414060616575
87316865607675
87417468566075
87517346656687
87617979748987
87717568556070
87817660647180
88018173607582
88117681848978
0883
1
77
60
60
66
75
0884
0
85
87
84
85
90
0885
0
78
75
62
66
80
0886
0
80
79
77
73
83
0887
0
85
82
81
84
80
0888
0
77
75
74
67
80
0889
0
67
71
71
69
90
0890
0
75
70
75
69
80
0891
0
69
76
76
79
90
0892
0
66
71
60
60
78
0893
1
70
84
75
80
85
0894
1
62
65
65
69
81
0895
1
91
78
61
66
78
0896
1
51
60
42
44
78
0898
1
67
73
67
73
85
0899
1
79
72
78
68
80
0900
1
76
68
63
84
90
0901
0
81
70
70
82
79
datadmaledfemale;setpb.score;
ifxb=1thenoutputdmale;ifxb=0thenoutputdfemale;run;
8、下面是3个大类疾病的丨CD-10编码及对应的疾病名。
请完成以下任务:
(1)建立数据集;
(2)提取每种疾病的大类编码;
(3)分别将3个大类的疾病存入3个数据集。
(提示:
ICD10编码中小数点前面的三位表示大类;length语句定义字符变量长度;字符串取子串函数)
表44类疾病的丨CD10编码及对应疾病名
ICD10Disease
A01.001伤寒
A01.002伤寒杆菌性败血症
A01.003+伤寒性脑膜炎
A01.101甲型副