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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.