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
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.