0
我有下面的示例數據:SAS數據步:計算基於前一行/下一行
data have;
input username $ betdate : datetime. stake;
dateOnly = datepart(betdate) ;
format betdate DATETIME.;
format dateOnly ddmmyy8.;
datalines;
player1 12NOV2008:12:04:01 90
player1 04NOV2008:09:03:44 30
player2 07NOV2008:14:03:33 120
player1 05NOV2008:09:00:00 50
player1 05NOV2008:09:05:00 30
player1 05NOV2008:09:00:05 20
player2 09NOV2008:10:05:10 10
player2 15NOV2008:15:05:33 35
player1 15NOV2008:15:05:33 35
player1 15NOV2008:15:05:33 35
run;
proc print;run;
proc sort data=have; by username dateonly betdate; run;
data want;
set have;
by username dateonly betdate;
if first.username then calendarTime = 0;
if first.dateonly then calendarTime + 1;
if first.username then eventTime = 0;
if first.betdate then eventTime + 1;
previousBetdateForPlayer = .;
nextBetdateForPlayer = .;
run;
proc print;run;
我如何填寫爲變量的previousBetdateForPlayer'和「nextBetdateForPlayer」的值。我知道如何去做PROC SQL,但是希望有一種更有效的方法來用DATA STEP來做到這一點。
這兩個變量都需要爲每個用戶名計算,所以'previousBetdateForPlayer'的值對於每個用戶名的首次下注都是NULL。 'nextBetdateForPlayer'的值對於每個用戶名的最終投注都是NULL。