金融数据库——SAS编程与数据处理2-18章复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAS编程与数据处理2-18章复习题
朱世武著.《SAS编程技术与金融数据处理》.清华大学出版社. 2003.7
第2章SAS系统快速入门
1.SAS系统的特点。
2.简述SAS的三类功能与相应的模块举例。
3.SAS技术水平的三个层次.
4.缺省情况下SAS系统的五个功能窗口及各自的作用是什么?怎样定义激活这些窗口的
快捷键?
5.SAS程序的一般特点。
6.SAS日志窗口的信息构成。
7.会使用工具菜单的options选项。
8.在显示管理系统下,切换窗口和完成各种特定的功能等,有四种发布命令的方式:即,在
命令框直接键入命令;使用下拉菜单;使用工具栏;按功能键。
试举例说明这些用法。
9.理解SAS逻辑库、临时库和永久库的概念。
会用菜单方式新建SAS永久库。
10.说明下面SAS命令的用途:
keys, dlglib, libname, dir, var, options, submit, recall.
11.怎样增加和删除SAS工具?
12.会用菜单方式导入(Import)和导出SAS数据集(Export)。
13.会用菜单方式创建查询。
14.会用SAS的INSIGHT模块进行简单的数据分析。
15.简述SAS逻辑库的作用。
第3章数据步创建SAS数据集
1.理解SAS语句的信息构成。
举例说明。
2.SAS名的种类及命名规则。
什么是SAS关键词?
3.理解Data步的Proc步。
4.SAS变量的类型和属性。
举例说明SAS自动变量。
5.理解SAS程序。
SAS程序的书写规则。
给一个简单SAS 程序的例子,适当应用SAS
的注释语句。
6.SAS数据集中变量列表时,X1-Xn表示什么?特殊SAS变量列表_numeric_, _character_
和_all_的含义。
7.怎样提交SAS程序?程序执行过程中,LOG窗口显示的信息结构。
8.怎样查看SAS程序的输出结果。
9.SAS表达式定义及其构成元素。
10.构成SAS表达式的操作对象和操作符有哪些?
11.SAS常数及其类型。
12.举例说明数值常数、字符常数和日期时间常数的表示方法。
13.举例说明数值和字符怎么转换?
14.SAS程序错误类型及LOG窗口显示的出错信息。
15.常用的句法错误及处理方法。
16.SAS逻辑库的概念及建立方法。
什么是临时库和永久库?
17.怎样引用SAS文件。
18.什么是库引擎?
19.SAS系统的文件类型。
20.Data步有哪些具体功能?
21.数据步创建SAS数据集可以处理的数据源。
22.写一个直接输入数据创建数据集的程序。
23.写一个由外部数据文件创建数据集的程序。
24.写若干个由已存SAS数据集创建SAS数据集的程序。
25.写出在Data步中用file和put语句将数据集转换为外部文件的简单程序。
第4章访问外部数据文件
1.举例说明SAS系统可以访问的两类外部文件。
2.你所知道SAS系统访问外部文件的方法有几种?
3.写三段SAS程序,用IMPORT过程分别导入EXCEL数据表、文本数据文件、固定分隔
符文本文件和ACCESS数据库。
并对相应的SAS程序作注释。
4. 通过LIBNAME和库引擎连接外部文件的语句格式及具体应用。
5.通过ACCESS过程访问外部数据文件的步骤。
6.写出创建XLS,DBF访问描述器的程序。
7.创建基于XLS,DBF访问描述器的数据视窗程序。
8.举例同时创建访问描述器和数据视窗。
9.写出两种由数据视窗创建SAS数据集的方法。
10.什么是ODBC?
11.写出创建两种以上ODBC数据集的操作步骤。
第5章SAS函数及其应用
1.举例说明函数的作用。
2.SAS函数的自变量有几类?
3.举例说明自变量的表示方法和缩写方法。
4.函数结果的属性是怎样确定的?
5.举例说明怎样在LOG窗口显示函数值。
6.会查书使用SAS的常用函数。
7.会使用特殊函数input, put, symget, lag, dif.
8.SAS日期时间存贮标准是什么?
9.函数DATE()和TODAY()的结果相同吗?datetime()和time呢?
10.分别说明日期时间函数datdif, yrdif, date(), datetime, mdy, dhms有哪些实际用途。
11. 你在平时的学习中用到哪些概率分布函数?
12.举出进行单边假设检验时怎样用分位数函数?
13. 解释下段程序的统计学含义:
data _null_;
q_f=finv(0.97,12,9);
put q_f=;
q_f=1/finv(1-0.97,9,12);
put q_f=;
run;
14.会查书使用SAS的日期函数。
15.会查书实现常用分布随机数。
16.将数据集fdata.logdate中的变量logdate由字符格式改为日期格式。
第6章数据步文件管理
1.解释语句:
data a;
data fdata.capital;
data data1 data2;
data _null_;
data;
data _data_;
2.举例说明数据集选项(data-set-options )中语句drop, keep, label, rename的用法。
3.怎样用view产生SAS数据视窗?怎样用PMG选项存贮DA TA步编辑程序?
4.掌握DATA步特殊数据集名的含义:_data_, _null_, _last_.
5.一个DATA语句下可以产生多个数据集吗?
6.INPUT语句的两个用途是什么?
7.INPUT语句中的@, @@, $, :, &, ~的作用是什么? 分别举例说明。
8.解释语句:INPUT (g1-g5) (3*7.2, 2*5.2); Input (a b) ($, 5.); Input (a b) ($ 5.);
9.说明Cards语句与Cards4语句的用法。
10.输出语句PUT可以输出一些行到什么地方?
11.解释下面程序中PUT语句产生的结果:
data _null_;
put 132 * ‘_’;
put 100*’1’;
run;
data _null_ ;
set fdata.class;
put _all_ ;
run;
data _null_;
set fdata.class;
by sex;
file print;
put name 1-8 @12 sex;
if last.sex then put _page_;
data;
put ‘example of overprint’ overprint ‘-------------------------’;
run;
12.解释BY组中自动变量FIRST. variable和LAST. Variable的含义。
13.SET语句的作用是什么?
14.解释SET语句中选项POINT=, NOBS=和END=的作用。
15.解释系统自动变量_N_的作用。
16.解释下一段程序:
data a;
do obsnum=1 to last by 20;
set fdata.a point=obsnum nobs=last;
output;
end;
stop;
run;
17.如何用一个变量得到数据集的观测个数?
18.如何找到数据集的最后一个观测值?
16.下段程序的END,LASTOBS和X中,哪个是选项?哪个是自动变量?哪个是普通变量?
data a;
set fdata.a end=lastobs;
if lastobs;
x=lastobs;
put ‘last observation’;
run;
19.下段程序能否正常运行?等式END=END两边是的含义是什么?
data a;
set fdata.a end=end;
if end;
proc print;
title2 'last observation';
run;
20.下段程序中n和_error_为自动变量吗?
Data subset;
Do n=238,468,600,100;
Set fdata.a1a0001 point=n;
If _error_=1 then abort;
Output;
End;
Run;
21.MERGE语句的作用是什么?
22.举例说明MODIFY语句的用途。
23.FILE语句一般要和PUT语句配合使用,举例说明FILE语句的作用。
24.INFILE语句一般要和INPUT语句配合使用,举例说明INFILE语句的作用。
25.举例说明INFILE语句中DSD,MISSOVER选项的作用。
26.使用import菜单将Fdata目录下文件Capital.txt导入为SAS数据集,并与本章例6.50的
结果进行比较。
第7章数据加工整理-修改与选择观测
1.怎样确定赋值结果变量的类型和长度?
2.举例说明累加语句SUM的用法。
3.说明累加语句SUM和SUM函数的区别。
4.说明DELETE语句的作用。
5.说明LOSTCARD语句的作用和应用条件。
6.说明STOP语句的作用。
7.说明ABORT语句的作用。
8.说明WHERE语句的性质。
9.分别举例说明WHERE表达式算符BETWEEN AND, IS MISSING|IS NULL, CONTAIN|? ,
LIKE和SAME AND的具体用法。
10.通常情况下能不能用条件语句WHERE来控制SAS系统的自动变量?举例说明。
11.说明条件语句where和子集if的区别。
12.说明OUTPUT语句的作用。
分别举例说明。
13.解释下面一段程序:
proc sort data=fdata.dd_c;
by date;
data a;
set fdata.dd_c ;
by date;
if first. date then sum_c=0;
sum_c+sum;
keep date sum_c ;
if last.date then output;
Run;
14.举例说明remove语句和replace语句的使用方法。
15.为什么要用MISSING语句规定缺失值符号?
16.比较PUT语句和LIST语句的作用后,你将得出什么结论?
第8章数据加工整理-循环与转移控制
1.举例说明简单DO语句的用法。
2.循环DO语句中起始值的类型有几种?可不可以用表达式?
3.解释下面程序:
data a;
t=0;
do n=1 to 100 ;
t=t+n;
output;
end;
run;
data a;
t=0;
do n=1 to 100 ;
t=t+n**2;
output;
end;
run;
4.解释面下的有效循环do语句:
do I=5;
do I=1 to n ;
do I=n to 1 by –1;
do I=k+1 to n-1;
do I=1 to k-1, k+1 to n;
do I=2, 3, 5, 7, 11, 13, 17;
do I=0.1 to 0.9 by 0.1, 1 to 10 by 1, 20 to 100 by 10;
do I=’Saturday’, ’Sunday’;
do I=’01jan99’d, ‘25feb99’d;
do I=’01jan99’d to ‘01jan2000’d by 1;
5.分别举例说明DO OVER, DO WHILE和DO UNTIL语句的用法。
6.举例说明SELECT语句的作用与具体用法。
7.举例说明IF语句的类型及相应的用法。
8.举例说明GO TO语句与语句标号的用法。
9.举例说明LINK语句的作用与具体用法。
10.说明LINK语句与GO TO语句的差别。
11.RETURN语句的作用与应用举例。
12.CONTINUE语句的作用与应用举例。
13.LEAVE语句的作用与应用举例。
14.CONTINUE语句与LEA VE语句的差别。
第9章数据加工整理-变量与信息控制
1.什么是数组?SAS系统中数组的作用有哪些?
2.分别用三种定义下标的方法定义一维、二维显式下标数组。
3.举例说明数组元素的表示方法。
4.举例说明怎样定义数组元素的初值。
5.解释下面数组语句:
array rain{5} x1-x5;
array ab(*)x y z;
array x[*]_numeric_;
array test(3)_temporary_(90 80 70);
array days{7} d1-d7;
array x{2:5}green red denato fetzer;
array test (3:4,3:7) test1-test10;
6.举例说明怎样定义隐含下标数组?
7.举例说明怎样引用隐含下标数组元素?
8.说明输入格式语句INFORMAT的作用。
9.举例说明怎样规定和取消变量的输入格式。
10.说明输出格式语句FORMA T的作用。
11.举例说明怎样规定和取消变量的输出格式。
12.怎样控制变量的长度?
13.举例说明LENGTH语句位置的重要性。
14.举例说明LABEL语句是怎样规定数据集和变量的标签的。
15.ATTRIB能规定的变量民属性哪些?
16.举例说明DROP语句和KEEP语句的作用与具体用法。
17.DROP语句和KEEP语句的使用规则及其实际使用中应注意的事项。
18.举例说明RENAME语句的用法。
19.举例说明RETAIN语句的作用与具体用法。
第10章过程步通用语句
1.过程步通用语句有有几类?相应的作用是什么?
2.PROC语句规定某过程的通用选项和特定选项的顺序是什么?PROC语句中的数据集可
以规定选择项,怎样规定?
3.解释下面PROC过程:
proc print data=fdata.a1a0001 (obs=10);
proc means data=a maxdec=3 css;
proc plot hpct=50 vpct=33;
4.V AR语句有选项吗?V AR语句可以使用缩写方式吗?DATA步哪些语句和选项会起到
和V AR语句相似的作用?
5.MODEL语句的选项要放在什么符号后?
6.ID语句和V AR语句有什么区别?
7.过程步WHERE语句和数据步WHERE语句的用法相似吗?除了WHERE语句的用法
外,还有没有WHERE选项的用法?
8.WHERE选项和选项FIRSTOBS=,OBS=,BY组选项一起使用时,生效的顺序是什么?
9.CLASS语句和BY语句有什么区别?DATA步中有这两个语句吗?
10.说明DATA步中OUTPUT语句和PROC步中OUTPUT语句的区别。
PROC步中OUTPUT
语句的一般形式是什么?
11.为什么要用QUIT语句?
12.PROC步中FORMAT语句的格式和DA TA步中FORMAT语句的格式相同吗?效果相同
吗?FORMA T是一个SAS过程吗?
13.PROC步中LABEL语句和DATA步中LABEL语句的效果相同吗?
第11章全程通用语句
1.写一段SAS程序,每句都加上注释。
2.利用X语句,在SAS系统下执行操作系统命令DIR,列出某文件夹下的所有文件
名,并将列出的结果存在到一下文件中。
3.怎样才能退出操作系统返回到SAS会话?
4.SAS一共可以规定几级标题?怎样规定SAS输出文件的标题?怎样取消标题?
5.SAS一共可以规定多少脚注行?怎样规定SAS输出页的脚注行?怎样取消脚注
行?
6.用LIBNAME语句建立5个不同引擎的逻辑库。
怎样为一个已经存在的逻辑库联系
一个SAS引擎。
7.写出一个SAS逻辑库联系多个物理地址的语句,一个SAS逻辑库可以同时联系多
个其它SAS逻辑库和多个物理地址吗?怎样联系?
8.不同库引擎SAS逻辑库中的数据集之间怎样转换?
9.怎样列出逻辑库的属性? 怎样脱离与库标记的联系?
10.说明编程时用filename语句的好处。
11.什么情况适合用%INCLUDE|%INC语句调用SAS程序和数据行?
12.%INCLUDE语句可以访问的数据源有哪些?
第12章输出形式与控制
1.解释语句OPTIONS NODA TE NONOTES NOSOURCE;
2.解释以下程序段:
proc printto log='d:\saslog.txt' new;
proc print data=fdata.class;
run;
proc printto log= 'd:\log.dat' ;
proc print data=fdata.class;
run;
options nodate nonotes nosource;
filename f1 'd:\out.txt';
proc printto log= f1;
proc print data=fdata.class;
run;
options nonumber missing ='B';
proc printto print='d:\out.txt' new;
proc print data=fdata.class;
run;
proc printto print='d:\out.txt';
proc print data=fdata.class;
run;
options nodate nonotes nosource;
filename f1 'd:\out.txt';
filename f2 'd:\out.list';
proc printto print=f2;
proc printto print= 'd:\out.list';
proc print data=fdata.class;
run;
proc gplot data=fdata.a1a0001 gout=fdata.graph;
symbol1 v=none i=join c=blue;
title1;
title2 “上证指数时序图”;
plot Clpr*date=1 / name=’a1a0001’ des=’Time series plot for close price’;
run;
2. 怎样在一个画面放四幅图?解释下段程序:
proc greplay nofs igout=fdata.graph gout=fdata.graph;
tc sashelp.templt;
template l2r2;
treplay 1:a1a0001 2:a1a0002 3: szzz 4:szcz;
run;
3. 怎样输出其它格式的图形文件?解释下面两段程序:
proc gdevice;
run;
Filename a1a0001 “d:\fdata\a1a0001.gif”;
Goptions reset=all device=gif gsfname=a1a0001 gsfmode=replace;
Proc gplot data=fdata.a1a0001 gout=fdata.graph;
Symbol1 v=none i=join c=blue;
Title1;
Title2 “上证指数时序图”;
Plot clpr*date=1 / name=’a1a0001’ des=’time series plot for close price’;
Run;
Quit;
4. 什么是ODS?它的作用和功能是什么?
5. 什么是ODS对象?ODS对象的传送目标和相应的文件格式是什么?缺省的ODS传送目标是什么?
6. 怎样打开和关闭传送ODS目标?
7. 利用ODS将SAS系统的输出结果直接生成SAS数据集一般需要几步完成?举例说明直接生成SAS数据集的全过程。
第13章变量输入输出格式控制
1.分别说明怎样使用SAS系统的输入输出格式?
2.什么时候得到永久的输入输出格式,什么时候得到临时的输入输出格式?
3.INPUT函数能将字符转换为数值,能转换字符” 1999-1-1”为数值吗?即下面程序能得到
正常结果吗?
data a;
logdate=’1999-1-1’;
date=input(logdate,yymmdd10.);
run;
4.解释下面输入格式的用法:
BZw.d
BINARYw.d
COMMAw.d
COMMAXw.d
Ew.d
$w.
$CHARw.
5.列出你平时常用字符,数值和日期时间变量的输入输出格式。
6.SAS系统怎样存贮日期时间值?
7.说明下面语句的结果:
data;
date=mdy(10,1,2002);
put date 8.;
x=put(today(), date7.);put x;
y=put(today(),8.0); put y;
z=today(); put z;
u=put(15260, yymmdd10.);put u;
v=put(15260, date9.);put v;
x=13807;
format x yymmdd10.;
put x=;
date='11oct2001'd;
put date=;
format date yymmdd10.;
run;
8.你能给出几种计算某日在SAS系统内存贮天数的方法。
9.SAS系统产生缺失值的情况有哪些?
第14章SAS宏功能
1.怎样定义和引用宏变量.
2.在引号内引用宏变量时,是用单引号还是双引号。
为什么?
3.怎样将一个完整的SAS程序段赋给一个宏变量?
4.怎样显示宏变量的值,解释下面程序:
data _null_;
%let a=first;
%let b=macro variable;
%put &a !!! &b !!!;
run;
5.什么是宏?怎样定义宏?
6.怎样调用宏?
7.什么是宏参数?
8.使用宏参数的优点有哪些?
9.解释并调用下面一段宏:
%Macro names(name, number);
%do n=1 %to &number;
&name&n
%end;
%mend names;
10.用SYMPUT子程序创建一个值来自DA TA步的宏变量,写出例程,并说明SYMPUT子
程序的作用?
11.将数据步中变量X的值赋给宏变量A时,以下两种方法都可以吗?为什么?
call symput(‘A’,X);
%let A=X;
分析下面程序在LOG窗口的输出结果:
data a;
set fdata.class nobs=nobs;
call symput('b',nobs);
%let a=nobs;
%put &a &b;
run;
12.解释下面语句的结果:
%let y=%eval(&x+200);
%let z=&x+200;
data %substr(&sysday,1,3);
13.引用宏变量的值作为前缀时,例宏变量A的值为QH,将其为作前缀得到QHIDX,能
不能用&AIDX的方式引用?为什么?怎样实现这一功能?
14.使用下面语句时可以直接使用表达式吗?怎样实现使用表达式的功能?
重复%Do
%Do%Until
%Do%While
第15章数据管理
1. 通常在什么情况下要对数据集进行排序?怎样按降序排序?
2. 分析SAS编程语言的特点,说明TRANSPOSE过程有什么具体用途?
3. 转置后数据集中的变量_NAME_和_LABEL_表示什么意思?能不能规定它们的名子?
4. 你一般在什么情况下使用PRINTTO过程?
5. 解释下列语句:
proc printto log='d:\saslog.txt' new;
filename f1 'd:\out.txt';
filename f2 'd:\out.list';
proc printto print=f2;
proc printto print= 'd:\out.list';
proc print data=fdata.class noobs;
6. APPEND过程和DA TA步SET语句实现的功能相同吗?应用时有什么区别?
7. 举例说明数据库复制过程COPY的简单用法。
第16章统计量计算
1. 什么是偏相关系数,怎样利用SAS的CORR过程和PARTIAL语句计算偏相关系数。
2. 解释频数过程的应用程序:
proc format;
value $sfmt 'M' = 'male ' 'F ' ='female';
proc freq data=fdata.class order=formatted;
table sex;
format sex $sfmt.;
run;
3. 你能列出频数过程在统计量计算和检验方面的应用吗?
4. 写出均值过程最常用的形式,并解释下面程序。
proc means data= fdata.r_month ;
var rm rf r;
output out=stat sum=s_rm s_rf s_r n=n_rm n_rf n_r
mean=M_rm M_rf M_r std=std_rm std_rf std_r ;
run;
5. 单变量过程(UNIV ARIATE)除了能计算均值过程的基本统计量外,还有哪些功能?单变量过程的格式和均值过程相似吗?
6. 均值过程(MEANS)计算的许多统计量都可以由DATA步实同,你能写出相应的计算程序吗?用样本统计量函数怎样实现均值过程的功能?
第17章数据展现
1. 举例说明你常用的PRINT过程选项和数据集选项?
2. 怎样控制PRINT过程的输出地点?怎样才能使PRINT的输出内容居左?
3. 使用PRINT过程打印列表输出时,怎样控制变量的输出顺序?怎样使用ID和BY语句定制输出?
4. 使用PRINT过程输出报告时怎样限定求和变量?
5. 写出使用tabulate过程创建二维报表的简单程序?怎样定制行列标题?
6. 举例说明作图过程(GPLOT)的一般格式,怎样叠加图形?怎样填充图形下面的区域?
7. 写出右侧加一垂直轴的作图选项语句。
8. 作图时怎样控制坐标轴的刻度值?
9. 解释PLOT语句的选项:
HAXIS=
V AXIS=
HMINOR=
VMINOR=
10. 解释SYMBOL语句规定图中线和符号的特征。
V=
H=
I=
FONT=
L=
COLOR=
11. 解释A XIS语句规定图形的轴的表现形式。
LABEL=
ANGLE=
ORDER=
R=
12. 怎样画总和统计量柱形图?分组柱形图?3D子组垂直柱形图?总和统计量饼图?分组圆环图或饼图?怎样对饼图子片排序和加标签?
第18章I ML编程技术
1.sas/iml最基本的数据对象是什么?
2.为什么说sas/iml是一种交互式矩阵语言?
3. 如何定义N维行向量、N维列向量和标量?
4.创建8*8单位阵,创建2*5元素全为9的矩阵。
5.a={3 3,4 4},b={9 9,12 12},创建分块对角阵c,使其主对角线元素是a和b。
6.data步中哪些函数sas/iml中不支持?
7.data步中哪些函数在sas/iml中有不同用法?
8.给下列语句加注释。
Rv =Ranpoi(Repeat(0,10,3));
ANS={[2] 'Yes', [2] 'No'};
a=X[+,];aa=shape({99 33,99 33},3,3,0);
s=10:6;
t='abc1':'abc5';
r=do(-1, 1, .5);
9.用sas函数实现:求矩阵均值、最大值和最小值。
10.不利用sas函数实现:矩阵a={1 3,5 4,2 1}各列的均值、最大值和最小值。
11.由sas数据集创建矩阵。
12.由矩阵创建SAS数据集。
13.Iml可以处理几种外部文件,分别是什么?
14.Iml如何访问外部文件?
15.选择矩阵的子阵有哪几种实现方式?
16.如何从存贮库中加载矩阵或模块?
17.如何存贮矩阵或模块至存贮库中?
18.在iml中如何为数据集建立索引?
19.解释iml中下列命令的功能。
命令功能
APPEND
FIND
LIST
PURGE
READ
SETIN
REMOVE
SETOUT
SHOW
20..用转移语句实现:当成绩小于60时,输出“该生成绩不合格”的信息,否则输出此成绩。