5.对ex.ex3_1按季度分组计算可转债总交易量和总成交金额,存储在数据集ex.sum_qtr中,该数据集应该还有年,季 两个时间指标; 6.从data.bdinfo中挑选市场标示(mktflg)同时含有"1","3”或者同时含有"2”,“3”的观测,并将筛选出的观 测按照债券标识(bdid)升序排列,结果存至ex.bdinfo; 7.从data.exchbdqttn中挑选出锐思标识(resbdid)在ex.bdinfo中的债券行情数据 课堂实践2.数据的进一步处理技术,变量与观测的修改技术应用 课下作业: 1).以2008年A股上市公司股票为样本,找出在2008年摘帽的公司(即公司名称中ST被去掉的) 2).查找2009年首次被ST的上市公司 3).查找截止到2009年9月30日,一直没有被特别处理的股票。 4).计算data.dret中各股票的月累计收益率,增加变量positive,若月累计收益率大于0,值为1,否则值为0, 5).试由以下的9种德国马克对美元汇率看跌期权和9种英镑对美元汇率的看跌期权产生81种组合。 一年期,DM/USD汇率的9种不同看跌期权的执行价格和成本 执行价格Kdm成本cdm 0.660.085855 0.650.032191 0.640.020795 0.630.017001 0.620.013711 0.610.010851 0.600.008388 0.590.006291 0.550.001401 一年期,BP/USD汇率的9种不同看跌期权的执行价格和成本 执行价格Kbp成本Cbp 1.300.137213 1.250.082645 1.200.045060 1.150.028348 1.100.016146 1.050.007860 1.000.003277 0.950.001134 0.900.000245 6).很多情况下,读者可能会综合数据库中多张表的内容,来更直观更方便地获得全面信息。比如,需要把同一公司的主 要财务比率和财务指标放在一起来研究整个公司。 数据合并举例: sold数据集:利润及利润分配表旧准则。 Frs数据集:代表公司的主要财务比率表 Scf old数据集:现金流量表I旧准则。 需要把这三个表中的以下变量综合起来: Is old表:主营业务利润(Mopeprf),营业利润(Opeprf),营业外收支净额=营业外收入Noperev-营业外支出 Nopeexp,利润总额(Totprf,)净利润 FrS表:每股收益摊薄(EPS),流动比率(Currt),速动比率(Qckrt),资产负债率(Dbassrt),每股净资产 (NetassPS),销售净利率(Netprfrt),每股经活动产生的现金流量净额(OpeCFPS),总资产周转率(次)(Totassrat), 净利润(扣除非经常性损益后Netprfcut) Scf_old表:经营活动产生的现金流量净额(NCFope),现金及现金等价物净增加额(NetincrCCE). 第四章:数据集的编辑与修改 【教学目的和要求】 学习几乎全部的数据处理技术,包括多个数据表的拼接和匹配合并技术,使用表达式和函数进行数据编辑的技术 使用循环语句通过单个数据生成多条数据的技术,使用数组简化处理多个变量的技术等等,这些技术的综合运用基本能 够解决金融数据的初步处理问题。要求学生熟练运用本章的dta步程序语句,并灵活运用上述技术解决金融问题。 【主要内容】 4.1改变变量或数据集的属性 4.1.1通过数据集选项改变属性:data语句,set语句 4.1.2通过语句改变属性:labeli语句、rename语句、retain语句; 4.2变量与观测的选择
4.2.1选择变量:keep,drop选项与语句; 4.2.2选择观测 4.3变量编辑与观测的修改 4.3.1数据集拼接增加变量和观测 4.3.2利用表达式与函数修改观测 4.3.3利用循环语句修改观测和变量 4.3.4利用数组修改观测 教学总时数:10,其中实验课时4课时 参考资料:《SAS编程技术教程》第二版第四章4.5,4.6,4.7,4.8,4.12,第五章,第六章 作业与练习: 课堂实验1(2课时),对数据的初步处理,变量和观测的选择 1.建立数据集ex.ex41,从数据集data.fdbs读入数据: a)给fdcd加标签为“基金代码“,给fdnm加标签为“基金名称“,取消date的标签; b)利用data语句的rename选项,将fdcd更名为code,将fdnm更名为name: c)为数据集ex.ex41加标签为”基金资产负债表” 2.建立数据集ex.ex42,从数据集data.class中读入数据,给每个变量加一个中文标签,并删除变量sex; 3.下段程序的END,LASTOBS和X中,哪个是选项?哪个是自动变量?哪个是普通变量? data a; set resdat.a600001 end=lastobs; if lastobs: x=lastobs put 'last observation'; run; 4.下段程序能否正常运行?等式END=END两边的含义是什么? data a; set resdat.a600001 end=end; if end; proc print; title2 'last observation'; run; 5.建立数据集ex.ex421,读去数据集data.monret1的前100条记录,但从第5条开始读入。 6.建立数据集app1d,获取数据集data.hf000012的第1000条记录。(尝试寻找效率最高的方式) 7.剔别除data.exchbdqttn1中成交笔数缺失和为0的记录。 8.输出数据集data.hf000012的总的记录数到log窗口。 9.根据data.hf000012中记录的不同月份将相同月份的数据输出到一个数据集。 课堂实验2(2课时). 1.纵向合并data.stk000001,data.stk000002,data.stk00004,data.stk000005的数据到数据集ex.stock,并将该数据集 输出到stock.xs. 2.利用data.stk000001的收盘价clpr计算五日百分比收益率将其存到数据集ex.rday5000001; 3.将data.stk000001和data.stk000002中的数据按照年份的先后顺序进行纵向合并,结果存为ex.ex43_3。 4.利用inputi函数将data.Istkinfo中的字符型变量stkcd的值转变为数值型变量code,结果存为ex.ex43_4。 5.利用字符匹配函数选取data.Istkinfo的股票名称中含有“中”的记录,存储在ex.ex435。 6.求100以内的偶数之积存储在ex.ex436; 7.创建包含日期变量DATE的SAS数据集,日期值从1900年1月1日到2000年1月1日,存储在ex.ex43_7。 8利用锐思数据的首次发行与上市数据,选取2006年在沪市上市的公司,保留股票代码、上市日期、发行价和首日收盘 价;从月累积收益率数据中提取这些公司在上市后3年的月度数据,与其首次发行数据进行合并,然后将其月度的收益率 与上证指数相应月度收益率合并,计算其月度超额收益率与3年来的月均超额收益率。结果存储在ex.x438(首次发 行与上市数据在iissultst中,月累积收益率数据在moncrete中,上证指数月度收益率在idxmonret中) 9.数据集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 al; do n=1 to 5; output; end; put n=;