| 所在主题: | |
| 文件名: TRD_Mnth.txt | |
| 资料下载链接地址: https://bbs.pinggu.org/a-1759139.html | |
| 附件大小: | |
|
验证动量效应,通过对2012年2月80支股票收益率进行排序,收益率从小到大分成10组,收益率最小的8只股票的组合为loser,最大的8只股票为winner,计算每月winner和loser组合收益率。现在means数据集中已得2012年3月winner和loser组合收益率,希望输出3月winner和loser收益率(即means数据集中最后一行及第一行数据),以及winner-loser组合收益率差值(即最后一行减第一行)。不知道该如何通过first.var和last.var,以及last.var-first.var输出想要的结果。
源数据txt文件见附件,代码如下: libname home "C:\Users\SONY\Desktop\sas\vk30igy3\data\"; DATA TRD_Mnth (Label="月个股回报率文件"); Infile 'C:\Users\SONY\Desktop\sas\vk30igy3\data\TRD_Mnth.txt' encoding="utf-8" delimiter = '09'x Missover Dsd lrecl=32767 firstobs=2; Format Stkcd $6.; Format Trdmnt $10.; Format Mretwd 10.6; Informat Stkcd $6.; Informat Trdmnt $10.; Informat Mretwd 10.6; Label Stkcd="证券代码"; Label Trdmnt="交易月份"; Label Mretwd="考虑现金红利再投资的月个股回报率"; Input Stkcd $ Trdmnt $ Mretwd ; Run; data home.trd_mnth; set trd_mnth; run; data t1; set home.trd_mnth; year=substr(Trdmnt,1,4)*1;/*乘1是为了将字符型转换成数值型*/ month=substr(Trdmnt,6,2)*1; ymonth=year*100+month; run; proc sort data=t1(where=(ymonth=201202)) out=t2; by descending Mretwd; run; /*分成10组*/ proc rank data=t2 out=t3 groups=10; ranks portfolio; var Mretwd; run; data t3; set t3; portfolio=portfolio+1; run; /*将分组数据合并到原始数据中*/ proc sql; create table t4 as select a.stkcd,a.year,a.month,a.ymonth,a.Mretwd,b.portfolio from t1 as a left join t3 as b on a.stkcd=b.stkcd order by b.portfolio,a.ymonth; quit; proc sort data=t4(where=(ymonth=201203)); by portfolio ymonth;run; /*计算每月资产组合的收益*/ proc means data=t4 noprint; by portfolio ymonth; var Mretwd; output out=means mean=; run; 谢谢大家 |
|
熟悉论坛请点击新手指南
|
|
| 下载说明 | |
|
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。 2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。 3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。 (如有侵权,欢迎举报) |
|
京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明