现在的位置: 首页 > 综合 > 正文

比对沪深300成份股派息情况

2018年02月19日 ⁄ 综合 ⁄ 共 1150字 ⁄ 字号 评论关闭
/*
目的:比对沪深300成份股派息情况
细节:proc import读取沪深300成份股信息,从中财网提取A股派息情况(目前系统过粘贴成文本进而导入sas),
     最后proc sql依据股票ID进行合并处理
遇到的问题:在合并过程中会遇到两数据变量的属性不一致的问题,merge...by报错,proc sql结果多于300条记录
*/
*导入沪深300数据,该数据系20120619日数据,收盘价是昨收;
PROC IMPORT OUT= WORK.hs300 
            DATAFILE= "E:\yugao\work\分红派息\沪深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:\yugao\work\分红派息\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;

抱歉!评论已关闭.