SAS金融数据处理综合练习题
1. 创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。分别用DATA
步,DATA步数组语句和IML过程实现。
2. 多种方法创建包含变量X的10000个观测值的SAS数据集。
3. 数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填
充开始到结束日之间的所有日期值。
4. 创建包含日期变量DATE的SAS数据集,日期值从1900年1月1日到2000年1月1
日。
5. 利用随机数函数RANUNI对某数据集设计返回抽样方案。
6. 利用随机数函数RANUNI对某数据集设计不返回抽样方案。
7. 计算数据集A中变量X的累乘。
8. 如何改变一个SAS数据集的变量顺序?
9. 数据集A和B包含同样两变量DATE和PRICE,以DATE为标识变量合并数据集A和
B为C。合并时应该注意什么?
10. 给下段程序的主要语句加注释。STOP语句能否删除?为什么?
data a;
do obsnum=1 to last by 20;
set ResDat.stk000001 point=obsnum nobs=last; output; end; stop; run;
11. 假设数据集A中的变量logdate为如下形式的字符格式:
1998-12-2 1999-8-6 1999-8-10
将其转换为日期格式变量date。
12. 运行SAS程序过程中,SAS系统创建的自动变量是否包含在创建的数据集?一般情况
下,怎样查看系统自动变量的值?
13. SAS系统显示表达式、函数、数据集、数组或矩阵的具体值时,常需要哪些语句和过程?
14. 写出下面各段程序创建数据集的所有观测值,并指出PUT语句分别在LOG窗口输出什
么结果? data a1; do n=1 to 5; output; end; put n=; run;
data a1; do n=1 to 5; output; put n=; end; put n=; run;
data a1; do n=1 to 5; put n=; end; put n=; run;
data a1; do n=1 to 5; end; put n=; run;
data a2; n=1;
do until(n>=5); n+1; output; end; put n=; run;
data a3; n=1;
do while(n<5);
n+1; output; end; put n=;
run;
data a4; n=7;
do until(n>=5); n+1; output; end; put n=; run;
data a5; n=7;
do while(n<5); n+1; output; end; put n=; run;
15. 数据集A有一个变量n,5个观测值1,2,3,4,5。数据A1由下面程序2产生,同样有一个
变量n,5个观测值1,2,3,4,5。试分析下面两段程序中,PUT语句在Log窗口输出结果的差异,为什么? 程序1: Data a; Set a; Put n=; Run;
程序2: data a1; do n=1 to 5; output; end; put n=; run;
16. 试由以下的9种德国马克对美元汇率看跌期权和9种英镑对美元汇率的看跌期权产生81
种组合。
一年期,DM/USD汇率的9种不同看跌期权的执行价格和成本
执行价格Kdm 0.66 0.65 0.64 0.63 0.62 0.61 0.60 0.59 0.55
成本 Cdm 0.085855 0.032191 0.020795 0.017001 0.013711 0.010851 0.008388 0.006291 0.001401
一年期,BP/USD汇率的9种不同看跌期权的执行价格和成本
执行价格 Kbp 1.30 1.25 1.20 1.15 1.10 1.05 1.00 0.95 0.90
创建样本数据集: data dm;
input Kdm Cdm; cards;
0.66 0.085855 0.65 0.032191 0.64 0.020795 0.63 0.017001 0.62 0.013711 0.61 0.010851 0.60 0.008388 0.59 0.006291 0.55 0.001401 ; run;
data bp;
input Kbp Cbp; cards;
1.30 0.137213 1.25 0.082645
成本 Cbp 0.137213 0.082645 0.045060 0.028348 0.016146 0.007860 0.003277 0.001134 0.000245
1.20 0.045060 1.15 0.028348 1.10 0.016146 1.05 0.007860 1.00 0.003277 0.95 0.001134 0.90 0.000245 ; run;
17. 不用SAS函数,用宏%a(n,p)计算二项分布的概率分布和累计概率(k=1,2……,n)。
?n?kP(X?k)???p(1?p)n?k。
?k?18. 创建组标识变量GROUP,将数据集A中的观测等分为10组,观测值不能整除10时,
前余数组各多加一个观测值。
19. 现有一个数据流: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。
20. 现有一个数据流: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
21. 用SAS软件作三维Hat图,x和y轴取值区间为[-5,5],z = sin(sqrt(y*y + x*x))。
x2y222. 创建马鞍图形,其数学公式为z??,p和q的值不同会导致图形的变化,生?pq成p=20,q=1的马鞍图形。
提示:产生x, y和z的数据后,用下面的过程实现作图。
proc g3d; plot y*x=z;
run;
23. 数据集Calendar只有日期变量,test包含股票代码、日期与收盘价三个变量。合并两个
数据集,用Calendar中的日期数据替代test数据集中每只股票的日期数据。 创建样本数据集: data calendar;