2

各日の午前 9 時、午前 10 時、午前 11 時などの日中価格のリストがあります (15011 15012 などの数値形式になっています)。

利用可能な最後の 5 日間と、日付 't' から次の 5 日間の観測のみを保持し、それ以外はすべて削除したいと考えています。これを行う方法はありますか?

if date < &t - 5 または date > &t + 5 then delete; を使用してみました。ただし、土日祝日があるため、希望する観測がすべて得られません。

よろしくお願いします!

4

2 に答える 2

0

Try this

/* Get distinct dates before and after &T */
proc freq data=mydata noprint ;
  table Date /out=before (where=(Date < &T)) ;
  table Date /out=after (where=(Date > &T)) ;
run ;

/* Take 5 days before and after */
proc sql outobs=5 ;
  create table before2 as
  select Date 
  from before 
  order by Date descending ;

  create table after2 as
  select Date 
  from after 
  order by Date ;
quit ;

/* Subset to 5 available days before & after */
proc sql ;
  create table final as
  select *
  from mydata 
  where Date >= (select min(date) from before2)
    and Date <= (select max(date) from after2)
  order by Date ;
quit ;
于 2013-09-30T12:06:44.333 に答える