SAS编程技术课后习题总结

2020-03-02 15:55:29 来源:范文大全收藏下载本文

第一章

1.缺省情况下,快捷键F1, F3, F4, F5, F6, F7, F8, F9和Ctrl+E的作用是什么?

F1帮助,F3 end,F4 recall调回提交的代码,F5 激活编辑器窗口,F6激活日志窗口,F7键激活输出窗口,F8 提交,F9键查看所有功能键功能,Ctrl+E键清除窗口内容。

2.缺省情况下SAS系统的五个功能窗口及各自的作用是什么?怎样定义激活这些窗口的快捷键?

1)资源管理器窗口。作用:访问数据的中心位置。2)结果窗口。作用:对程序的输出结果进行浏览和管理。3)增强型编辑器窗口。作用:比普通编辑窗口增加了一些功能,如定义缩写,显示行号,对程序段实现展开和收缩等。4)日志窗口。作用:查看程序运行信息。5)输出窗口。查看SAS程序的输出结果。 3.怎样增加和删除SAS工具?

使用菜单栏中的工具=>定制=>“定制”标签实现工具的增加和删除。 4.SAS日志窗口的信息构成。

提交的程序语句;系统消息和错误;程序运行速度和时间。

5.在显示管理系统下,切换窗口和完成各种特定的功能等,有四种发布命令的方式:即,在命令框直接键入命令;使用下拉菜单;使用工具栏;按功能键。试举例说明这些用法。

如提交运行的命令。程序写完后,按F3键或F8键提交程序,或单击工具条中的提交按纽,或在命令框中输入submit命令,或使用菜单栏中的运行下的提交,这样所提交的程序就会被运行。 6.用菜单方式新建一个SAS逻辑库。

在菜单栏选择工具—》新建逻辑库出现如图所示界面。

在名称中输入新的逻辑库名称。在引擎中根据数据来源选择不同的引擎,如果只是想建立本机地址上的一个普通的SAS数据集数据库,可以选择默认。然后选中“启动时启用”复选框,在逻辑库信息中,单击路径后的“浏览”按钮,选择窗口可以不填,单击确定产生一个新的逻辑库。

7.说明下面SAS命令的用途并举例: keys, dlglib, libname, dir, var, options, submit, recall.Keys激活功能键的设定窗口。libname 建立SAS逻辑库。Submit提交。Options设定一个或多个系统选项,任何系统选项都有一个默认设置。 8.用菜单方式导入(Import)和导出SAS数据集(Export)。

文件->导入数据

出现上图对话框,选择要导入数据类型,然后NEXT。

浏览要导入数据的地址。点击OK。

出现上图对话框,然后点击NEXT。

选择数据库存放的地址并命名。

第二次作业

1.构成SAS程序的语句分别分为哪两大类?什么是SAS语句?举例说明SAS语句的信息构成。

数据步、过程步

SAS语句就是一系列关键词、SAS名称、算符以及特殊字符的组合。 2.简述SAS名的种类及命名规则。什么是SAS关键词?

SAS名的类型:1逻辑库名; 2数据集名;3变量名;4格式名;5过程名;6数组名;7语句标号名;8特殊文件名;9其它名。

SAS名称必须以字母或下划线开头;SAS名称可以包括字母、数字和下划线; SAS名称依据其使用的场合有一定长度限制。

3.SAS变量的类型和属性。举例说明SAS自动变量。 数值变量

数值变量是SAS系统以浮点(floating-point)方式存储的数据变量,数 值变量包括日期和时间。 数值变量的值只能是数值。 字符变量

字符变量可以由阿拉伯字母、数字0-9以及其它一些特殊字符组成。 字符变量的值可以是字符、字母、特殊字符和数值。字符变量名后跟 一个美元号($)表示该变量是字符型而不是数值型。

2)变量属性

SAS变量的属性包括:长度、输入输出格式和标签。未设定属性的变量在它们第一次出现时由系统给出。

4.给一个简单的SAS程序的例子,适当应用SAS的注释语句。 data a;

/*data为关键词,a为SAS名*/ x=12345.1234; informat x 12.4; /*输入语句,保留12字节和4位小数*/ format x 8.2;

/*输出语句,保留8字节和2位小数*/ put x=; run;

5.SAS数据集中变量链表时,X1~Xn表示什么?特殊SAS变量列表_numerie_,_character_和_all_的含义。

X1~Xn 从X1到Xn的所有变量 _numerie_ 所有数值变量 _character_ 所有字符变量 _all_ 所有变量

6.怎样提交SAS程序?简述程序执行过程中,LOG窗口显示的信息结构。

8.简述SAS表达式定义及其结构构成元素。

表达式由一系列操作符和操作对象构成,产生一个目标值。使用表达式可以对变量作变换和赋值,创建新变量,计算新数值以及控制条件语句的运行等。 包括操作对象和操作符

9.构成SAS表达式的操作对象和操作符有哪些? 操作对象有:变量;常数

操作符包括:算术算符;比较算符;逻辑算符;SAS函数;括号

11.举例说明数值常常数、字符常数和日期时间常数的表达方法。 引用数值格式 例:

标准格式:1,01,+1,-1,1.1; 科学计数法:1.1e11, 1.2e-12; 十六进制格式:1cx,12x,9x

字符常数通常由单引号括起来的1~32767个字符组成。如果字符常数内含有引号,引用时,要么它的引号用两个连续的单引号,要么用一个双引号。 例:name=”TOM’S”

引用日期时间常数,格式值带引号,后面跟一个D(日期)、T(时间)、或DT(日期时间) 例:’ljan2000’d 16.简述数据步的功能。

1)创建SAS数据集(SAS数据文件或SAS数据视图); 2)读取外部数据文件创建SAS数据集;

3)通过对现有SAS数据集取子集、合并、修改和更新创建新的SAS数据集; 4)分析、操作或展示数据; 5)创建新变量;

6)产生报告、或将文件存储到硬盘或磁带上; 7)提取信息; 8)文件管理。

第三次作业

data A; infile cards; input Fee @@; cards; 35 78 99 36 79 21 23 90 87 90 33 55 66 12 98 1100 ; run;

第四次作业

1、

data a; input x; y=y*x; retain y 1; cards; 1 2 3 4 8 16 ; proc print; run;

2、

data b; input stkcd $ rdate yymmdd10.lstknm $ var1 var2 var3; cards; ; run; data c; format stkcd lstknm rdate var3 var2 var1; set b; run;

3、

data a; input date price; cards; 12 23 23 52 11 21 ; data b; input date price; cards; 12 55 55 21 68 9 ; proc sort data=a; /*排序*/ by date; run; proc sort data=b; by date; run; data c; set a b; by date; proc print noobs; run;

4、

data a; input logdate $10.; cards; 2011-12-2 2012-8-6 2012-8-10 ; run; data b; set a(rename=(logdate=date)); date=input(date,yymmdd10.); label date=\'日期\'; run;

5、

自动变量是由数据步语句自动创建的,这些自动变量不输出到数据集中,在重复过程中被保留。

6、创建组标识变量GROUP,将数据集A中的观测等分为10组,观测值不能整除10时, 前余数组各多加一个观测值

data a; set resdat.treat nobs=nobs; x=(nobs-mod(nobs,10))/10; call symput(\'nobs\',nobs); call symput(\'groupn\',x); Call symput(\'mod\',mod(nobs,10)); Drop x; run; %put &nobs &groupn; data b; do i=1 to &mod do _n_=1 to &groupn+1; group=i; output; end; end; do i=&mod+1 to 10; do _n_=1 to &groupn; group=i; output; end; end; Drop i; run; data c; merge a b; proc sort data=c; by group; run;

7、现有一个数据流:a 2 b 3 c d 4 6,按下面要求创建SAS数据集。用语句input id $ no; 变 量id取值上面数据流里的a,b,c,d,变量no取值2,3,4,6。但是这个数据流存在问题:如有的id没有no,有的no没有id。创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的c和6去掉,最后得到三个观测,a 2, b 3与d 4。

data a; input t$@@ ; cards; a 2 b 3 c d 4 6 ; run; data b; set a; id=lag(t); no=t; if \'a\'

8、现有一个数据流:a23 223 bc4 36 3c5 11d 400 620,按下面要求创建SAS数据集。 用语句input id $ no; 变量id取值上面数据流里的a23, bc4, 11d ,变量no取值233,36,400。但是这个数据流存在问题:如有的id没有no,有的no没有id。创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的3c5和620去掉,最后得到三个观测:

a23 223 bc4 36 11d 400

data a(keep=id no); input x $ @@; id=lag(x); no=input(x,8.); y=lag(no); if y=\'.\' and id^=\' \' and no^=\'.\'; cards; a23 223 bc4 36 3c5 11d 400 620 ; run;

第五次作业

1.创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。分别用DATA 步,DATA步数组语句和IML过程实现。 data test1a; informat x1-x10000 9.2; do i=1 to 100; output; drop i; end; run; 2.多种方法创建包含变量X的10000个观测值的SAS数据集。

3.数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填

充开始到结束日之间的所有日期值。

proc iml; x= {\'date\' price}; t= {1111 2,2341 2,2132 3,1234 5,12345 6,3456 6,6753 4,2345 7,2134 9}; print t; t[1,1]=.; t[2,1]=.; t[5,1]=.; t[9,1]=.; create a from t[colname=x];/ append from t; show datasets; show contents; close a; run; quit; data a; set a; format date yymmdd8.2; run; data a1; set a n=_n_; format date yymmdd8.2; retain temp; if date^=.then temp=date; else date=temp; run; data a2; n=_n_; set a1; run; proc sort data=a2; by descending n; set a2 drop n temp; run; data a4 set a3; retain temp; if date^=.then temp=date; else date=temp; run; data a4; n=_n_; set a4; run; proc sort data=a4 out=b(drop=n temp); by descending n; run;

4.利用随机数函数RANUNI对某数据集设计返回抽样方案。 data sample(drop =samplesize n); samplesize=5; do n=1 to samplesize; readit=ceil(ranuni(0)*totobs); put readit=; set bb.cla point=readit nobs=totobs; output; end; stop; run;

5.利用随机数函数RANUNI对某数据集设计不返回抽样方案。

data a; set bb.cla; keep name; run; data b; set a nobs=nobs; ran=ceil(nobs*ranuni(1)); put ran=; run; proc sort data=b; by ran; data c; set b; if _n_

6.给下段程序的主要语句加注释。STOP语句能否删除?为什么?

不能删除。

强制结束数据步,因为set语句在数据步程序中会反复执行数据步的程序直到遇到文件结束(最后一跳观测)的标志,这里使用了指针选项可能碰不到这种标志,所以要用stop,否则就有可能无休止地执行下去。

7.SAS系统显示表达式、函数、数据集、数组或矩阵的具体值时,常需要哪些语句和过程? put; proc print print show list;

第六次作业

2.SAS函数的自变量有几类?

自变量类型:变量名、常数、函数、表达式。 3.举例说明自变量的表示方法和缩写规则。 当函数有多个自变量时,必须用逗号分隔开。

自变量名缩写方法:函数名(OF变量名1-变量名n);函数名(OF变量名1…变量名n)。 7.SAS系统是怎样存贮日期时间的?SAS日期时间存贮标准是什么?

SAS日期和时间存储标准是以1960年1月1号0时0分0秒为起点,然后以相应的间隔记时。如1960年1月1日9时0分,按日记的数值就是0,按小时记的数值就是9。1960年1月2日0时0分,按日记的数值就是1,按小时记的数值就是24。

9.分别说明日期时间函数datdif, yrdif, date(), datetime, mdy, dhms有哪些实际用途。

DATADIF(sdate,edate,basis)返回两个日期之间的天数。 YRDIF(sdate,edate,basis)返回两个日期之间的年数。 DATA()返回当前日期的SAS日期值。 DATETIME()返回当前日期和时间。

MDY(month,day,year)返回由年、月和日定义的SAS日期值。

DHMS(date,hour,minute,second)返回由日期、小时、分钟和秒构成的SAS日期时间值。

大学物理课后习题总结

课后习题总结1

广告学课后习题总结

普通心理学课后习题总结

近代史课后习题总结

课后习题

课后习题

课后习题

数据结构课后习题答案总结

常用sas语句总结

《SAS编程技术课后习题总结.doc》
SAS编程技术课后习题总结
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文