全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5359 8
2014-06-05
各位高手,有个SAS问题求助:

#RICDate[G]Time[G]Price
AUD=D3

1-Jan-13

16:46:52.242

1.013

AUD=D3

1-Jan-13

16:47:36.488

1.013

AUD=D3

1-Jan-13

17:18:48.993

1.014

AUD=D3

1-Jan-13

17:19:36.308

.

AUD=D3

1-Jan-13

17:24:09.758

1.014

AUD=D3

1-Jan-13

17:24:10.300

1.013

AUD=D3

1-Jan-13

17:24:19.303

1.013

AUD=D3

1-Jan-13

17:24:22.764

.

AUD=D3

1-Jan-13

17:24:38.749

1.015

AUD=D3

1-Jan-13

17:24:39.249

1.015



数据格式如上。
想抽取每天下午四点钟(16:00:00.000)的数据,
如果该时点没有数据,则计算出4点钟之前和之后数值的加权平均(权重为该数据时间与4点钟间隔的倒数)。
不知SAS如何实现?
多谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2014-6-5 12:16:38
看不懂!太专业了!
二维码

扫码加我 拉你入群

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

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

2014-6-6 07:51:17
给个方向, 你自己试看看

step 1:
PTime=Time- 16:00 ; positive 4:00 之后
if Ptime>=0 then do
  Ntime=10000000;
end;
else do ; *NTime=16:00 -time ; negative 4:00 之前
  Ptime=10000000;
  Ntime=abs(PTime);
end;

step 2:
-> 取出 Ptime 最小值, Ntime最小值.
#每个RIC 最多只有2笔, (要用distinct, nodup 处理过, 才会剩2笔)
#可能还要remove 掉, 离太久的, 如9:00

step 3:
  1. 如果​​ Ptime 有等于(接近)0
    outp=price;
  2. else 如果 有一笔,
    outp=price;
  3. else 如果 有二笔,
    outp=(priceA * NTIME +price B * PTIME)/(PTime+NTIME);

#也许step 3 还可以化简,有简单的写法.

想像
STEP 1 可以用 DATA 做.
STEP 2 可以用 SQL, or DATA 做.
STep 3 可以用 SQL 做.
二维码

扫码加我 拉你入群

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

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

2014-6-6 11:47:42
复制代码
二维码

扫码加我 拉你入群

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

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

2014-6-6 13:45:59
yongyitian 发表于 2014-6-6 11:47
多谢您的回复!
我的数据总共一年(1-Jan-2013 to 31-Dec-2013),想找出每一天的这个时间点的数据price.
怎么扩展?
二维码

扫码加我 拉你入群

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

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

2014-6-6 15:18:47
另外想问下 如何在原来的数据中插入每天的一个固定时间点(16:00:00.000)
用merge?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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