我是靠谱客的博主 专一云朵,最近开发中收集的这篇文章主要介绍比对沪深300成份股派息情况,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*
目的:比对沪深300成份股派息情况
细节:proc import读取沪深300成份股信息,从中财网提取A股派息情况(目前系统过粘贴成文本进而导入sas),
     最后proc sql依据股票ID进行合并处理
遇到的问题:在合并过程中会遇到两数据变量的属性不一致的问题,merge...by报错,proc sql结果多于300条记录
*/
*导入沪深300数据,该数据系20120619日数据,收盘价是昨收;
PROC IMPORT OUT= WORK.hs300 
            DATAFILE= "E:yugaowork分红派息沪深300.xls" 
            DBMS=EXCEL REPLACE;
     RANGE="Sheet1$"; 
     GETNAMES=YES;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;
*保留部分数据,变量fundid,fundname,close;
DATA hs300_2;
   SET hs300(RENAME=(_COL0=fundid _col1=fundname  _COL12=close ));
   keep fundid fundname close;
run;
*导入A股派息一览表,该表有中财网获得;
PROC IMPORT OUT= WORK.paixi 
            DATAFILE= "E:yugaowork分红派息fen.xls" 
            DBMS=EXCEL REPLACE;
     RANGE="Sheet2$"; 
     GETNAMES=YES;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;
*保留部分数据:股票代码fundid,是否分配sffp,送转股数szgshu,派息paixi,股权登记日gqdjr,除权除息日chuquan;
DATA paixi_2;
   SET paixi(RENAME=(_COL0=fundid _col3=sffp _COL6=szgshu _COL7=paixi  _COL9=gqdjr _col10=chuquan));
   drop _:;
run;
*依股票代码进行数据合并;
proc sql;
   create table new as
      select distinct a.fundid,a.fundname,a.close,
             b.sffp,b.szgshu,b.paixi,b.gqdjr,b.chuquan
	     from hs300_2 as a
		 inner join 
		 paixi_2 as b
		 on a.fundid=b.fundid;
quit;
*依股票代码/股权登记日等派息;
proc sort data= new ;
   by fundid descending sffp  descending gqdjr;
run;

PROC SORT DATA=NEW OUT=NEW2;BY  DESCENDING chuquan;RUN;


最后

以上就是专一云朵为你收集整理的比对沪深300成份股派息情况的全部内容,希望文章能够帮你解决比对沪深300成份股派息情况所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部