作者tew (咖啡王子)
标题Re: [程式] sas 找某日期的前一个交易日
时间Thu Mar 22 11:14:37 2018
※ 引述《werlinxc (天才小韦)》之铭言:
: [软体程式类别]: SAS
: [程式问题]: 侦测参数
: [软体熟悉度]: 新手
: [问题叙述]:
: 板上的大家好,在整理资料时遇到了困难,想寻求协助。
: 资料总共有两行,第一行是某日期,第二行是日股价,我想找出找出某日期的「前一日(
: 必须为交易日)与前一个月」的股价差。
: 有想过用intnx函数,直接拿第一行的某日期减一天,再抓日股价相同的一天。但如果某
: 日期是礼拜一,减一天会是礼拜日,但礼拜日股价不会有资料,应该是要往前推算至最近
: 交易日才对。
: 所以想询问,如何找出离某日期最近的交易日。
: 谢谢!
day means your event day data
p means your price data
all the date need to be time format
proc sql;
create table day as select distinct
a.stkcd,a.date,max(b.date) as date1 format yymmddn8.
from aa.day as a,aa.p as b
where a.stkcd=b.stkcd and a.date>b.date and b.close^=.
group by a.stkcd,a.date;
create table price1day as select
a.stkcd,a.date,b.close
from day as a,aa.p as b
where a.stkcd=b.stkcd and a.date1=b.date;
quit;
proc sql;
create table day as select distinct
a.stkcd,a.date,max(b.date) as date1 format yymmddn8.
from aa.day as a,aa.p as b
where a.stkcd=b.stkcd and intnx('month',a.date,-1,'s')>=b.date
and b.close^=.
group by a.stkcd,a.date;
create table price1month as select
a.stkcd,a.date,b.close
from day as a,aa.p as b
where a.stkcd=b.stkcd and a.date1=b.date;
quit;
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.72.30.154
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1521688481.A.955.html