SAS上机练习题(全部-含参考答案) 下载本文

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 ;

data dmale dfemale; set pb.score;

if xb=1 then output dmale; if xb=0 then output dfemale; run;

8、下面是3个大类疾病的ICD-10编码及对应的疾病名。请完成以下任务: (1)建立数据集;

(2)提取每种疾病的大类编码;

(3)分别将3个大类的疾病存入3个数据集。

(提示:ICD10编码中小数点前面的三位表示大类;length语句定义字符变量长度;字符串取子串函数)

表4 4类疾病的ICD10编码及对应疾病名

ICD10 A01.001 A01.002 A01.003+ A01.101 A01.201 A01.301 A01.401 A02.001 A02.002 A02.004

Disease 伤寒

伤寒杆菌性败血症 伤寒性脑膜炎 甲型副伤寒 乙型副伤寒 丙型副伤寒 副伤寒

B群沙门氏菌肠炎 C群沙门氏菌肠炎 沙门氏菌性肠炎

精选

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

沙门氏菌胃肠炎 鼠伤寒沙门氏菌性肠炎 婴儿沙门氏菌肠炎 沙门氏菌败血症 沙门氏菌性肺炎 沙门氏菌性关节炎 沙门氏菌性脑膜炎 沙门氏菌感染 鼠伤寒沙门氏菌感染 沙门氏菌属食物中毒 什密氏志贺菌痢疾 弗氏志贺菌痢疾 鲍氏志贺菌痢疾 宋内氏志贺菌痢疾 菌痢混合感染 细菌性痢疾

慢性细菌性痢疾急性发作 慢性细菌性痢疾 慢性迁延型细菌性痢疾 中毒性痢疾

参考程序: data a;

input ICD10 $ Disease:$24.; cat=substr(ICD10,1,3); cards;

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 中毒性痢疾 ;

data cat01 cat02 cat03; set a;

if cat='A01' then output cat01; if cat='A02' then output cat02; if cat='A03' then output cat03; run;

9、现有两个文件,内容如下:

A文件 学号 统计 体育 年龄 01 87 83 23 02 56 96 22 03 93 75 19 04 77 84 24 05 88 55 18 B文件 学号 性别 班级 01 男 1 02 女 1 03 男 3 04 男 2 05 女 2 08 女 3 要求:打印至少有一门功课不及格的同学的年龄、性别和班级。

参考程序: data fileA;

input no$ tj ty age; cards;

01 87 83 23 02 56 96 22

精选

03 93 75 19 04 77 84 24 05 88 55 18 ;

data fileB;

input no$ sex$ bj; cards;

01 男 1 02 女 1 03 男 3 04 男 2 05 女 2 08 女 3 ;

proc sort data=fileA; by no;

proc sort data=fileB; by no;

data fileAB;

merge fileA fileB; by no;

if min(tj,ty)<60 and min(tj,ty) > . ; run;

proc print; run;

10、显示100到200以内的素数。 (提示:素数即只能被1和本身整除的数,如2,3,5,7等等;循环语句,条件语句,取余数函数mod(a,b))

参考程序: data a;

do i=100 to 200; flag=0;

do j=2 to i-1;

if mod(i,j)=0 then flag=1; end;

if flag=0 then output; end; keep i; run;

精选

精选(彭斌,2010-3-23)

proc print; run;