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 | 成本 Cdm |
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 |
| |
一年期,BP/USD汇率的9种不同看跌期权的执行价格和成本
执行价格 Kbp | 成本 Cbp |
1.30 | 0.137213 |
1.25 | 0.082645 |
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 |
| |
创建样本数据集:
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;
25th hourdata bp;
input Kbp Cbp;
cards;
1.30 0.137213
1.25 0.082645
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)。。
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))。
22.创建马鞍图形,其数学公式为,p和q的值不同会导致图形的变化,生成p=20,q=1的马鞍图形。
提示:产生x, y和z的数据后,用下面的过程实现作图。
proc g3d;
plot y*x=z;
run;
23.数据集Calendar只有日期变量,test包含股票代码、日期与收盘价三个变量。合并两个数据集,用Calendar中的日期数据替代玻璃纤维膨体纱test数据集中每只股票的日期数据。
创建样本数据集:
data calendar;
input Date yymmdd10.;
format Date yymmdd10.;
cards;
2003-1-20
2003-1-21
2003-1-22
2003-1-23
2003-1-24
2003-1-27
2003-1-28
2003-1-29
2003-1-30
2003-1-31
2003-2-3
2003-2-4
2003-2-5
2003-2-6
2003-2-7
2003-2-8
;
run;
data test;
infile datalines missover ;
informat Stkcd $6. Date yymmdd10. Clpr 8.2;
input Stkcd $ Date Clpr;
format Stkcd $6. Date yymmdd10. Clpr 8.2;
cards;
600000 2003-1-20 9.94
600000 2003-1-22 9.66
600000 2003-1-24 9.88
600000 2003-1-27 10.07
600000 2003-1-28 10.17
600000 2003-1-29 10.31
600000 2003-2-4 10.31
600000 2003-2-5 10.13
600001 2003-1-20 8.13
600001 2003-1-21 8.14
600001 2003-1-22 8.17
600001 2003-1-23 8.40
600001 2003-1-24 8.65
600001 2003-1-31 8.93
600001 2003-2-4 9.02
600001 2003-2-5 8.63
600002 2003-1-31 2.25
600002 2003-2-3 2.26
600002 2003-2-4 2.35
600002 2003-2-6 2.55
600002 2003-2-8 2.12
;
run;
24.当股票的分配事件分两次完成,且第一次分配在节假日或该股票的停牌日,第二次分配在下一个交易日时,一般的数据库会有如下表所示的观测值存贮方式。写程序将停牌日(即没有收盘价的那个观测值)中的分配事件合到下一个观测中。
股票 代码 | 日期 | 收盘价 | 送股 比例 | 转增 比例 | 配股 比例 | 配股价 | 增发 比例 | 增发价格 | 现金 红利 |
… | … | … | . | . | . | . | . | . | . |
xxxxxx | xxxxxx | . | 0.2 | 0.1 | 0 | 0 | 0 | 0 | 0 |
xxxxxx | xxxxxx | … | 0 | 0 | 0.5 | 5.20 | 0 | 0 | 0.50 |
xxxxxx | xxxxxx | … | . | . | . | . | . | . | . |
xxxxxx | xxxxxx | … | . | . | . | . | . | . | . |
… | … | … | . | . | . | . | . | .iis | . |
… | … | … | . | . | . | . | . | . | . |
| | | | | | | | | |
注:…表示有数据值,.表示缺失值。
编程变量名参考:
股票代码Stkcd
日期Date
收盘价Clpr
送股比例Stkdrate
转增比例Capissurate
配股比例Rigoffrate
配股价Rigoffpr
增发比例Snirate
增发价格Snipr
现金红利Dividend
创建样本数据集:
data a;
input Stkcd Date yymmdd8. Clpr Stkdrate Capissurate Rigoffrate Rigoffpr Snirate Snipr Dividend;