Hey I need some help formatting some data I was recently given.
Customer | Product | purchase date | days_supply |
---|---|---|---|
a | R1 | 10/11/13 | 30 |
a | R2 | 10/11/13 | 30 |
b | R1 | 02/15/13 | 30 |
b | R2 | 03/15/13 | 30 |
b | R3 | 04/15/13 | 60 |
I need to see all the days the customer had the product. Is there an easy way to do this or do I need to write some loops?
Thanks
Could you please specify how you wish to see all these days? How do you intend to use it?
For now I'm only trying to find the total days overlap in multiple products by customer. The output would be 30 dates.
Ex. for row one:
customer product possession_date
a r1 10/11/13
a r1 10/12/13
a r1 10/13/13
. .
.
.
.
Can't really see the end product. But if you want that desired output, I think a do-loop is the tool.
After outputting a row for each date, re-sort the table on customer, possession_date and product, and then use a data step with BY and first./last.-logic to create your desired output.
Please try,
data have;
input customer$ product$ purchase_date : mmddyy10. days_supply;
format purchase_date mmddyy10.;
cards;
a R1 10/11/13 30
a R2 10/11/13 30
b R1 02/15/13 30
b R2 03/15/13 30
b R3 04/15/13 60
;
run;
data want;
set have;
do possession_date= purchase_date to intnx('day',days_supply,purchase_date);
output;
end;
format possession_date mmddyy10.;
run;
Thanks,
Jagadish
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.