概述
/*
目的:比对沪深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成份股派息情况所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复