Hello, hope everyone is safe.
I have this data set and I want to flag a Customer_Key that have 3 consecutive datediff of less 1. What I'm trying to get is a customer that have a 3 or more transactions within a 2 day period. Thank you in advance.
Try this (made a small edit - see comment):
libname here '.';
proc import datafile="Data_Example.xlsx" out=have dbms=xlsx replace;
run;
proc sort;
by customer_key;
run;
data want;
retain window cnt;
set have;
by customer_key;
if first.customer_key then do;
cnt=0; window=0;
end;
if window + datediff <= 2 then do;
cnt=cnt+1; window = window + datediff;
end;
else do;
window=0; cnt = 1; /*changed cnt=0 to cnt=1*/
end;
if cnt >= 3 then flag='Y';
run;
Try this (made a small edit - see comment):
libname here '.';
proc import datafile="Data_Example.xlsx" out=have dbms=xlsx replace;
run;
proc sort;
by customer_key;
run;
data want;
retain window cnt;
set have;
by customer_key;
if first.customer_key then do;
cnt=0; window=0;
end;
if window + datediff <= 2 then do;
cnt=cnt+1; window = window + datediff;
end;
else do;
window=0; cnt = 1; /*changed cnt=0 to cnt=1*/
end;
if cnt >= 3 then flag='Y';
run;
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!
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.