金融数据库——SAS数据处理应用题

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SAS数据处理应用题_2005

以下练习题选自《SAS数据处理综合练习》,解决这些题目原则上需要学完《SAS编程技术与金融数据》前18章内容。

1. 创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。分别用DATA 步,DA TA步数组语句和IML过程实现。

2. 创建包含日期变量DA TE的SAS数据集,日期值从1900年1月1日到2000年1月1日。

3. 多种方法创建包含变量X的10000个观测值的SAS数据集。

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

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

6. 数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填充开始到结束日之间的所有日期值。

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

8. 数据集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;

9. 假设数据集A中的变量logdate为如下形式的字符格式:1998-12-2

1999-8-6

1999-8-10

将其转换为日期格式变量date。

如果字符格式的数据为:

19981202

19990806

19990810

又怎样转换为日期格式变量。

10. 数据集fdata. Calendar包含一个日期变量,fdata. bond_price包含一个债券代码、一个日期变量与其它相应的价格。合并两个数据集,用Calendar中的日期数据替代bond_price 数据集中每支债券中的日期数据。

11. 当股票的分配事件分两次完成,且第一次分配在节假日或该股票的停牌日,第二次分配在下一个交易日时,一般的数据库会有如下表所示的观测值存贮方式。写程序将停牌日(即没有收盘价的那个观测值)中的分配事件合到下一个观测中。

注:…表示有数据值,.表示缺失值。

编程变量名参考:

股票代码Hstkcd,日期Dt,收盘价Closepr,送股比例Stkdrate,转增比例Capissurate,配股比例Rigoffrate,配股价Rigoffpr,增发比例Snirate,增发价格Snipr,现金红利Dividend。

12.现有一个数据流: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。

更一般情况。

现有一个数据流: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

13. 假设股票市场的股本数据如下表,对每支股票,按如下要求设计填充总股本和流通股股本数据的SAS程序:以该股票前面的股本数据填充后面的缺失值,如果某支股票上市交易时就缺失股本数据,则用该股票上市后的第一个股本数据向前填充。

注:…表示有数据值,.表示缺失值。

编程变量名参考:

股票代码Hstkcd,日期Dt, 收盘价Closepr, 股本变动日Capchgdt, 总股本Fullshr, 流通股trdshr, 总股本Fullshr.

/* 创建样本数据集*/

data test;

infile datalines missover ;

informat hstkcd $8. dt yymmdd10. closepr 8.2 capchgdt yymmdd10. fullshr Trdshr 20. ;

input hstkcd $ dt closepr capchgdt fullshr Trdshr;

format hstkcd $8. dt yymmdd10. closepr 8.2 capchgdt yymmdd10. fullshr Trdshr 20.;

cards;

11600000 2003-1-20 9.94 2003-1-20 3915000000 900000000

11600000 2003-1-21 9.68

11600000 2003-1-22 9.66

11600000 2003-1-23 9.6

11600000 2003-1-24 9.88

11600000 2003-1-27 10.07

11600000 2003-1-28 10.17

11600000 2003-1-29 10.31

11600000 2003-2-10 10.09

11600000 2003-2-11 10.2

11600000 2003-2-12 10.31

11600000 2003-2-13 10.13

11600001 2000-5-29 8.13 2000-5-29

11600001 2000-5-30 8.14

11600001 2000-5-31 8.65

11600001 2000-6-1 8.93

11600001 2000-6-2 9.11

11600001 2000-6-5 9.02 2000-6-5 1486553100 490000000

11600001 2000-6-6 8.63

11600001 2000-6-7 8.52

11600001 2000-6-8 8.55

11600001 2000-6-9 8.3

11600001 2000-6-12 8.34

相关文档
最新文档