全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4260 5
2011-12-31
哪位高手知道如何提取股票每个季度末的数据?我需要从所有A股的2005-2010年的日数据中提取每个季度末的流通市值,这该怎么做呢?谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-1-1 01:35:13
用if   或  where  条件来选取,
把月、日取出来,总共就四个么,罗列出来也算可行..
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-1-1 18:21:06
解决了,找了段程序改了改,贴出来与大家一同学习。

2.2.1 创建单期收益计算环境
data a;
set stoindif.a1a0001;
year=year(date);
qtr=qtr(date);
month=month(date);
proc sort data=a;
by year qtr month;
run;
data b;
set a;
last_y=last.year;    /*标出某年的最后一个交易日 */
last_q=last.qtr;     /*标出某季的最后一个交易日 */
last_m=last.month;  /*标出某月的最后一个交易日 */
by year qtr month;
run;
2.2.2 年收益计算
data r_year(keep=date r_pct r_log label="年收益");
set b;
if last_y=1; /* 取各年最后一个交易日的数据 */
r_pct=dif(clpr)/lag(clpr_r); /* 计算百分比收益 */
r_log=log(clpr_r)-log(lag(clpr_r)); /* 计算对数收益 */
/*函数log(x)是以e为底的自然对数,其它对数函数还有log2(x),log10(x)*/
run;
2.2.3 季收益计算
data r_qtr (keep=date r_pct r_log label="季收益");
set b;
if last_q=1; /* 取各季最后一个交易日的数据 */
r_pct=dif(clpr_r)/lag(clpr_r);
r_log=log(clpr_r)-log(lag(clpr_r));
run;
2.2.4 月收益计算
data r_month (keep=date r_pct r_log label="月收益");
set b;
if last_m=1; /* 取各月最后一个交易日的数据 */
r_pct=dif(clpr_r)/lag(clpr_r);
r_log=log(clpr_r)-log(lag(clpr_r));
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-1-1 19:44:03
tiaotiaotang 发表于 2012-1-1 18:21
解决了,找了段程序改了改,贴出来与大家一同学习。

2.2.1 创建单期收益计算环境
噢,我滴说法不可行...还是last.比较靠谱~~哈~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-1-1 19:47:08
这是朱老师书上的吧?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-1-1 20:17:03
可~乐 发表于 2012-1-1 19:47
这是朱老师书上的吧?
朱世武?不知道,忘了,是从网上下载的一个word文档里的。应该是那一本书里的。买了他的《SAS 编程技术教程》,还没仔细读过,只是“问题——查找——阅度”
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群