SAS上机练习题全部含参考答案.docx
《SAS上机练习题全部含参考答案.docx》由会员分享,可在线阅读,更多相关《SAS上机练习题全部含参考答案.docx(51页珍藏版)》请在冰豆网上搜索。
SAS上机练习题全部含参考答案
重庆医科大学--卫生统计学统计软件包
SAS上机练习题
(一)
1、SAS常用的窗口有哪三个?
请在三个基本窗口之间切换并记住这些命令或功能键。
2、请在PGM窗口中输入如下几行程序,提交系统执行,并查看OUTPUT窗和LOG窗中内容,注意不同颜色的含义;并根据日志窗中的信息修改完善程序。
DATSEX0101;
INPUTTNAME$AGESEX;
CARDS;
XIAOMIN191
LIDONG201
NANA182
;
PRODPRONTDATS=EX1;
RUN;
PROCPRINTDATA=EX1;
VARNAMEAGE;
RUN;
3、将第2题的程序、结果及日志保存到磁盘。
4、试根据如下例1的程序完成后面的问题:
表1某班16名学生3门功课成绩表如下
问题:
1)建立数据集;
2)打印至少有1门功课不及格同学的信息;(提示,使用if语句)
参考程序:
dataa;
inputidshwlbl;
cards;
083687165
084746168
085737546
086798079
087757168
084858587
085787975
086807679
087858082
088777175
089677371
080758170
118705475
083706684
084627365
099827079
;
run;
datab;
seta;
ifsh<60orwl<60orbl<60thenoutput;
run;
procprintdata=b;
varidshwlbl;
run;
5、根据下列数据建立数据集
表2 销售数据
开始时间
终止时间
费用
2005/04/28
25MAY2009
$123,345,000
20050918
05OCT2009
$33,234,500
2007/08/12
22SEP2009
$345,600
30JUN2009
$432,334,500
提示:
(格式化输入;数据之间以空格分隔,数据对齐;注意格式后面的长度应以前一个位置结束开始计算,如果读入错误,可试着调整格式的宽度;显示日期需要使用输出格式)
开始时间,输入格式yymmdd10.
终止时间,输入格式date10.
费用,输入格式dollar12.
参考程序:
dataa;
inputx1yymmdd10.x2date10.x3dollar13.;
cards;
2005/04/2825MAY2009$123,345,000
2005091805OCT2009$33,234,500
2007/08/1222SEP2009$345,600
2004050830JUN2009$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
13X
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
。
。
。
。
。
。
1513441713X
1308279203X
1897876466X
;
procprint;
run;
7、下表是某班学生几门功课的成绩,其中形势课是考查课,其它均为考试课。
请完成以下处理并且保存程序、结果和日志:
(注意函数在DATASTEP中使用的位置)
(1)用Mean()函数求出每位同学的平均分,将其保存在变量中;
(2)用sum()函数或者表达式求出每位同学的总分,将其保存在变量中;
(3)如果每门考试课权重是0.75,每门考查课权重为0.25,试求每位同学的加权平均分;
(4)将数据集保存为永久数据集,保存位置为“D:
\mydata\”;
(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
60
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
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
参考程序:
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
087316865607675
087417468566075
087517346656687
087617979748987
087717568556070
087817660647180
088018173607582
088117681848978
088317760606675
088408587848590
088507875626680
088608079777383
088708582818480
088807775746780
088906771716990
089007570756980
089106976767990
089206671606078
089317084758085
089416265656981
089519178616678
089615160424478
089816773677385
089917972786880
090017668638490
090108170708279
;
datadmaledfemale;
setpb.score;
ifxb=1thenoutputdmale;
ifxb=0thenoutputdfemale;
run;
8、下面是3个大类疾病的ICD-10编码及对应的疾病名。
请完成以下任务:
(1)建立数据集;
(2)提取每种疾病的大类编码;
(3)分别将3个大类的疾病存入3个数据集。
(提示:
ICD10编码中小数点前面的三位表示大类;length语句定义字符变量长度;字符串取子串函数)
表4 4类疾病的ICD10编码及对应疾病名
ICD10
Disease
A01.001
伤寒
A01.002
伤寒杆菌性败血症
A01.003+
伤寒性脑膜炎
A01.101
甲型副伤寒
A01.201
乙型副伤寒
A01.301
丙型副伤寒
A01.401
副伤寒
A02.001
B群沙门氏菌肠炎
A02.002
C群沙门氏菌肠炎
A02.004
沙门氏菌性肠炎
A02.006
沙门氏菌胃肠炎
A02.007
鼠伤寒沙门氏菌性肠炎
A02.008
婴儿沙门氏菌肠炎
A02.101
沙门氏菌败血症
A02.201+
沙门氏菌性肺炎
A02.202+
沙门氏菌性关节炎
A02.203+
沙门氏菌性脑膜炎
A02.901
沙门氏菌感染
A02.902
鼠伤寒沙门氏菌感染
A02.903
沙门氏菌属食物中毒
A03.001
什密氏志贺菌痢疾
A03.101
弗氏志贺菌痢疾
A03.201
鲍氏志贺菌痢疾
A03.301
宋内氏志贺菌痢疾
A03.802
菌痢混合感染
A03.901
细菌性痢疾
A03.902
慢性细菌性痢疾急性发作
A03.903
慢性细菌性痢疾
A03.905
慢性迁延型细菌性痢疾
A03.906
中毒性痢疾
参考程序:
dataa;
inputICD10$Disease:
$24.;
cat=substr(ICD10,1,3);
cards;
A01.001伤寒
A01.002伤寒杆菌性败血症
A01.003+伤寒性脑膜炎
A01.101甲型副伤寒
A01.201乙型副伤寒
A01.301丙型副伤寒
A01.401副伤寒
A02.001B群沙门氏菌肠炎
A02.002C群沙门氏菌肠炎
A02.004沙门氏菌性肠炎
A02.006沙门氏菌胃肠炎
A02.007鼠伤寒沙门氏菌性肠炎
A02.008婴儿沙门氏菌肠炎
A02.101沙门氏菌败血症
A02.201+沙门氏菌性肺炎
A02.202+沙门氏菌性关节炎
A02.203+沙门氏菌性脑膜炎
A02.901沙门氏菌感染
A02.902鼠伤寒沙门氏菌感染
A02.903沙门氏菌属食物中毒
A03.001什密氏志贺菌痢疾
A03.101弗氏志贺菌痢疾
A03.201鲍氏志贺菌痢疾
A03.301宋内氏志贺菌痢疾
A03.802菌痢混合感染
A03.901细菌性痢疾
A03.902慢性细菌性痢疾急性发作
A03.903慢性细菌性痢疾
A03.905慢性迁延型细菌性痢疾
A03.906中毒性痢疾
;
datacat01cat02cat03;
seta;
ifcat='A01'thenoutputcat01;
ifcat='A02'thenoutputcat02;
ifcat='A03'thenoutputcat03;
run;
9、现有两个文件,内容如下:
A文件
学号统计体育年龄
01878323
02569622
03937519
04778424
05885518
B文件
学号性别班级
01男1
02女1
03男3
04男2
05女2
08女3
要求:
打印至少有一门功课不及格的同学的年龄、性别和班级。
参考程序:
datafileA;
inputno$tjtyage;
cards;
01878323
02569622
03937519
04778424
05885518
;
datafileB;
inputno$sex$bj;
cards;
01男1
02女1
03男3
04男2
05女2
08女3
;
procsortdata=fileA;
byno;
procsortdata=fileB;
byno;
datafileAB;
mergefileAfileB;
byno;
ifmin(tj,ty)<60andmin(tj,ty)>.;
run;
procprint;
run;
10、显示100到200以内的素数。
(提示:
素数即只能被1和本身整除的数,如2,3,5,7等等;循环语句,条件语句,取余数函数mod(a,b))
参考程序:
dataa;
doi=100to200;
flag=0;
doj=2toi-1;
ifmod(i,j)=0thenflag=1;
end;
ifflag=0thenoutput;
end;
keepi;
run;
procprint;
run;
(彭斌,2010-3-23)
SAS上机练习题
(二)
1、某农村地区1999年14岁女孩的身高资料列于表1。
表1谋农村地区1999年14岁女孩身高资料(cm)
142.3148.8142.7144.4144.7145.1143.3154.2152.3142.7156.6
137.9143.9141.2139.3145.8142.2137.9141.2150.6142.7151.3
142.4141.5141.9147.9125.8139.9148.9154.9145.7140.8139.6
148.8147.8146.7132.7149.7154.0158.2138.2149.8151.1140.1
140.5143.4152.9147.5147.7162.6141.6143.6144.0150.6138.9
150.8147.9136.9146.5130.6142.5149.0145.4139.5148.9144.5
141.8148.1145.4134.6130.5145.2146.2146.4142.4137.1141.4
144.0129.4142.8132.1141.8143.3143.8134.7147.1140.9137.4
142.5146.6135.5146.8156.3150.0147.3142.9141.4134.7138.5
146.6134.5135.1141.9142.1138.1134.9146.7138.5139.6139.2
148.8150.3140.7143.5140.2143.6138.7138.9143.5139.9134.4
133.1145.9139.2137.4142.3160.9137.7142.9126.8
问题:
(1)计算均数、中位数;计算均数的95%可信区间;
(2)计算四分位间距、标准差、变异系数;计算标准误;
(3)请进行正态性检验;
(4)观察频数分布情况;
参考程序:
dataa;
inputx@@;
cards;
142.3148.8142.7144.4144.7145.1143.3154.2152.3142.7156.6
137.9143.9141.2139.3145.8142.2137.9141.2150.6142.7151.3
142.4141.5141.9147.9125.8139.9148.9154.9145.7140.8139.6
148.8147.8146.7132.7149.7154.0158.2138.2149.8151.1140.1
140.5143.4152.9147.5147.7162.6141.6143.6144.0150.6138.9
150.8147.9136.9146.5130.6142.5149.0145.4139.5148.9144.5
141.8148.1145.4134.6130.5145.2146.2146.4142.4137.1141.4
144.0129.4142.8132.1141.8143.3143.8134.7147.1140.9137.4
142.5146.6135.5146.8156.3150.0147.3142.9141.4134.7138.5
146.6134.5135.1141.9142.1138.1134.9146.7138.5139.6139.2
148.8150.3140.7143.5140.2143.6138.7138.9143.5139.9134.4
133.1145.9139.2137.4142.3160.9137.7142.9126.8
;
procmeansdata=anmeanmedianclmqrangestdcvstderr;
varx;
procunivariatedata=anormal;
histogramx;
varx;
run;
2、某研究员欲分析急性染毒对肝脏功能的影响,将40只小鼠分为两组,雄雌各半,试验组进行急性染毒试验,染毒后2小时测定血液中的ALT,整理的结果见下表。
(1)比较实验组与对照组的ALT有无差异;
ALT(丙氨酸转氨酶)
NO
male
controlTreaetment
Female
controlTreaetment
1
38.4
57.8
39.7
55.7
2
30.6
62.4
34.6
63.8
3
25.5
57.5
40.5
59.9
4
29.9
49.9
44.3
49.7
5
29.0
55.6
41.2
48.8
6
33.6
47.3
25.6
51.3
7
39.4
50.1
30.6
53.8
8
42.5
48.7
37.6
42.6
9
46.7
57.9
39.5
61.7
10
49.3
60.4
25.1
65.3
参考程序:
dataa2;
dosex='M','F';
dogrp='C','T';
inputalt@@;
output;
end;
end;
cards;
38.457.839.755.7
30.662.434.663.8
25.557.540.559.9
29.949.944.349.7
29.055.641.248.8
33.647.325.651.3
39.450.130.653.8
42.548.737.642.6
46.757.939.561.7
49.360.425.165.3
;
procanovadata=a2;
classsexgrp;
modelalt=sexgrp;
meansgrp;
run;
quit;
3、24名志愿者随机分成两组,每组12人,接受降胆固醇试验,甲组为特殊饮食组,乙组为药物治疗组。
受试者试验前后各测量一次血清胆固醇(mmol/L),数据见下表:
甲组
乙组
受试者
试验前
试验后
受试者
试验前
试验后
1
6.11
6.00
1
6.90
6.93
2
6.81
6.83
2
6.40
6.35
3
6.48
4.49
3
6.48
6.41
4
7.59
7.28
4
7.00
7.10
5
6.42
6.3