Hi all,
proc sql;
create table umd
as select distinct a.permno, a.date, a.prc, exp(sum(log(1+b.ret)))-1 as cum_return
from crspmom6(keep=permno date) as a, crspmom6 as b
where a.permno=b.permno and 0<=intck('month', b.date, a.date)<&J
group by a.permno, a.date
having count(b.ret)=&J;
quit;
How to change red words to skip one month, that is, skip the month between time t and t-1?
The two uses of &J do not seem to be related. The first refers to a number of months, the second, to a number of records...
WHERE condition only: Remove the "=" sign from the condition to exclude the current month and add a "=" sign before &J to include the Jth month..
HAVING condition has no apparent relation with your question...
PG
Not 100% sure what you want, because the question isn't clear and how you're incrementing &J isn't presented.
0<=intck('month', b.date, a.date)<&J+1?
The two uses of &J do not seem to be related. The first refers to a number of months, the second, to a number of records...
WHERE condition only: Remove the "=" sign from the condition to exclude the current month and add a "=" sign before &J to include the Jth month..
HAVING condition has no apparent relation with your question...
PG
Thanks! It works.
In my case, '=' should not be added before &J, so in the HAVING condition, count should be &J-1
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.