BookmarkSubscribeRSS Feed
pangea17
Quartz | Level 8

I have a question I am using SAS 9.4 and enterprise guide 7.1. I have a dataset consisting of two months worth of data, summarized.  See the enclosed excel workbook with a sample of some of the output.  What I am trying to do is use the units and dollars from Nov as the denominator and the units and dollars from December as the numerator. So, I want the row number 11 compared to the row 2 units and dollars units: (38428 / 266324)  dollars:(22211515.39 / 160519471.93).  So this is basically looking at the number of accounts that moved from a lower bucket to a higher bucket.   I would be doing the same calculation for 5 to 30,  30 to 60, 60 to 90, 90 to 120, 120 to 150, and 150 to 180.  It is also important to use the correct cycle for the comparison, so cycle 1 November vs cycle 1 December.  Cycle2 November to Cycle 2 December, cycle 3 to cycle 3 ex cetera.

 

2 REPLIES 2
SuryaKiran
Meteorite | Level 14

You can write a PROC SQL to generate Cartesian  product and then filter for your requirements. This is one way of approach, you can also so this kind of approach using a data step.

 

proc sql;
create table want as
select t1.*,
		t2.PK as PK_,
		t2.reportingdate	as reportingdate_,
		t2.cycle as cycle_,
		t2.bucket1 as bucket1_,
		t2.units1 as units1_,
		t2.balance1 as balance1_,
		t1.units1/t2.units1 as need1,
		t1.balance1/t2.balance1 as need2
	from have t1,have t2
where t1.cycle=t2.cycle and t1.reportingdate='17DEC2018'D
	and t1.reportingdate<>t2.reportingdate
	and (	( t1.bucket1=5 and t2.bucket1=0) 
		or 	( t1.bucket1=30 and t2.bucket1=5)
		or 	( t1.bucket1=60 and t2.bucket1=30)
		or 	( t1.bucket1=90 and t2.bucket1=60)
		or 	( t1.bucket1=120 and t2.bucket1=90)
		or 	( t1.bucket1=150 and t2.bucket1=120)
		or 	( t1.bucket1=180 and t2.bucket1=150)
		)

order by t1.cycle,t1.reportingdate,t1.bucket1
;
quit;
Thanks,
Suryakiran
pangea17
Quartz | Level 8

Thanks Suryakiran.  That is a reasonable solution.

sas-innovate-2024.png

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.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 630 views
  • 1 like
  • 2 in conversation