全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3690 4
2010-11-02
我有如下的一个数据(以下是一部分样本,并且同样的数据集有多个),各个变量含义依次是股票代码、交易日期、某个收益值、基准日期(记为第0天)、基准日前两天(记第-2天)、基准日后两天(记第2天)、后边的依次是后4、6、8、10天(4、6、8、10),现在需要计算不同股票在以下时间区间内【-2,2】、【0,2】、【0,4】,【0,6】,【0,8】,【0,10】跟ar有关的一个函数值,请教该如何写程序?或者请高手提示下该用什么?循环和宏吗?
stck Trddt ar date pre2_date aft2_date aft4_date aft6_date aft8_date aft10_date
000009 2008-03-06 0.02442681 2008-03-08 2008-03-06 2008-03-10 2008-03-12 2008-03-14 2008-03-16 2008-03-18
000009 2008-03-07 -0.020126482 2008-03-08 2008-03-06 2008-03-10 2008-03-12 2008-03-14 2008-03-16 2008-03-18
000009 2008-03-10 -0.021732947 2008-03-08 2008-03-06 2008-03-10 2008-03-12 2008-03-14 2008-03-16 2008-03-18
000026 2008-04-07 -0.035743757 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-08 -0.021548374 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-09 0.021731954 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-10 -0.031038653 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-11 0.000708965 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-14 -0.027964365 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-15 -0.048091734 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-16 0.025881512 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-17 -0.007311003 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
000026 2008-04-18 -0.022120984 2008-04-09 2008-04-07 2008-04-11 2008-04-13 2008-04-15 2008-04-17 2008-04-19
二维码

扫码加我 拉你入群

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

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

全部回复
2010-11-2 10:04:36
复制代码
抛个砖,用sum做的测试,其他聚合函数的话要稍作改动
二维码

扫码加我 拉你入群

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

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

2010-11-2 10:41:18
用循环、IF 语句能不能做啊?

没用过宏,学的话时间有点紧。。。
二维码

扫码加我 拉你入群

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

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

2012-4-16 09:40:15
学习了,高效的编程
二维码

扫码加我 拉你入群

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

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

2012-4-16 14:12:50
这个宏的确赞,不过核心思想是:挑选符合条件的观测。
我做的话,会些类似如下的code:
data b;set a;
if abs(intck('day',trddt,date))<=2 then _minus2_to_2=1;else _minus2_to_2=0;
if intck('day',trddt,date)>=0 and intck('day',trddt,date)<=2 then _0_to_2=1;else _0_to_2=0;
if intck('day',trddt,date)>=0 and intck('day',trddt,date)<=4 then _0_to_4=1;else _0_to_4=0;
if intck('day',trddt,date)>=0 and intck('day',trddt,date)<=6 then _0_to_6=1;else _0_to_6=0;
if intck('day',trddt,date)>=0 and intck('day',trddt,date)<=8 then _0_to_8=1;else _0_to_8=0;
if intck('day',trddt,date)>=0 and intck('day',trddt,date)<=10 then _0_to_10=1;else _0_to_10=0;
run;
然后再用sql汇总。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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