请教:我的数据包括:gvkey datadate yrmth return
gvkey是股票代码,datadate是交易日期,yrmth是交易日期所在的年度和月份,return是股票日收益。
现在我需要对return取lag,要求每支股票每月的第一个交易日lag_return为空。
我这样写的:
proc sort data=r1995;by gvkey yrmth datadate;run;
data r1995;
set r1995;
by gvkey yrmth;
lag_return=lag(daily_return);
if first.gvkey and first.yrmth then do;
lag_return=. ;
end;run;
为什么取出来不对呢?第二个月的第一天依然取的是上月最后一天的return。请问我哪里写错了!谢谢!