全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2197 1
2022-08-25
悬赏 10 个论坛币 已解决
想计算各支股票每日的后面5天、60天、250天内的最大涨幅,假设当日股价nclose,Fmax5即为nclose和后面4天股价的5各数值最大值。想着如果把每支股票日期都倒过来,就能用proc expand的movmax函数;但是遇到问题时该函数把所有股票一起生成TIME排了序,导致不同股票交界时计算错用了其它股票数据。求大神协助如何即可以用proc expandmovmax函数,又能避免不同股票交界的数据混用计算问题。或者数组循环解决
data stock.test3;
  set stock.test;
   proc sort data=stock.test3;
by stockcode descending date;      
run;


proc expand data=stock.test3 Out=Stock.test3 method=none;
   convert nclose = Fmax5 / transformout = (movmax 5);
   convert nclose = Fmin5 / transformout = (movmin 5);

proc sort data=stock.test3 out=stock.test3;
by stockcode date;

run;




最佳答案

HXAI102230 查看完整内容

proc sort data=stock.test out=test; by stockcode descending date; run; proc expand data=test Out=testout method=none; by stockcode; convert nclose = max5_close / transformout = (movmax 5); convert nclose = max60_close / transformout = (movmax 60); convert nclose = max250_close / transformout = (movmax 250); run; proc sort data=testout out=testfinal; by stockcode date; run; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2022-8-25 23:09:54
proc sort data=stock.test out=test;
  by stockcode descending date;
run;

proc expand data=test Out=testout method=none;
        by stockcode;
        convert nclose = max5_close / transformout = (movmax 5);
        convert nclose = max60_close / transformout = (movmax 60);
        convert nclose = max250_close / transformout = (movmax 250);
run;

proc sort data=testout out=testfinal;
  by stockcode date;
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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