BookmarkSubscribeRSS Feed
ZZB
Obsidian | Level 7 ZZB
Obsidian | Level 7

proc expand data=XXX out=XXX method=none;
by AAA;
convert high = high1 / transformin=(movmax 12 trimleft 10);
run;

 

I want to get the Maxmium obs from the most recent 12 obs in the moving windows. But I want to skip the most recent 1 observation. In fact I use 1-11st obs, while skipping 12st obs. How to code it?

1 REPLY 1
mkeintz
PROC Star

Better late than never?

 

    convert high=high1 / transformin=(lag 1) transformout=(movmax 12 trimleft 10);

 

This makes the current value of high tied with the preceding, so max over 12 obs, is the same as max over preceding 11 obs.

 

Regards,

Mark

 

--------------------------
The hash OUTPUT method will overwrite a SAS data set, but not append. That can be costly. Consider voting for Add a HASH object method which would append a hash object to an existing SAS data set

Would enabling PROC SORT to simultaneously output multiple datasets be useful? Then vote for
Allow PROC SORT to output multiple datasets

--------------------------

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 783 views
  • 0 likes
  • 2 in conversation