BookmarkSubscribeRSS Feed
mlogan
Lapis Lazuli | Level 10

Hello,

I have tuition fees laid out for 4 years (Variables Fee_YR_01-Fee_YR_04) starting current year (Fee_YR_01). Variables Increase_YR_01-Increase_YR_04 in the sample dataset shows the proposed tuition fee increase rate (in percent) based on the previous year. I want to calculate the future tuition based on this proposed tuition increase rate (in the new variables Fee_New_YR_02 - Fee_New_YR_04). I want a dynamic solution for this calculation.  Thank you all.

 

My data set looks like this:

 

data have;
	input Fee_YR_01 Fee_YR_02 Fee_YR_03 Fee_YR_04 Increase_YR_01 Increase_YR_02 Increase_YR_03 Increase_YR_04;
datalines;
1000	1050	1100	1150	0	20	20	20
1000	1070	1100	1150	0	20	20	20
3000	3100	3150	3200	0	15	15	15
3000	3200	3200	3300	0	15	15	15
4000	4150	4200	4250	0	15	15	15
4000	4200	4300	4350	0	15	15	15

;
RUN;

 

This is the output I want:

 

Fee_New_YR_02 Fee_New_YR_03 Fee_New_YR_04
1200 1260 1320
1200 1284 1320
3450 3565 3622.5
3450 3680 3680
4600 4772.5 4830
4600 4830 4945

 

Calculations: Fee_New_YR_02=Fee_YR_01 * 1.2 (increased by 20%)

I have shown you a small set of data. But I have 150 variables for tuition fees and 150 variables for the tuition rate increase.  So I need help on how to do it dynamically. 

 

1 REPLY 1
andreas_lds
Jade | Level 19

You will need to three use arrays:

  • fees: array fees Fee_YR_01-Fee_YR_04
  • incs array Increase_YR_01-Increase_YR_04
  • result array Result_YR_01-Result_YR_04

the a simple loop and the job is almost done.

Have a look at the docs of the array statement, to get the details.

 

EDIT: Forgot to add a hint about improving the data structure, so here it is: the calculation would be easier if your dataset would not have data in the names of variables (YR_01 ...), but a variable holding the value of the year. With that structure the calculation would look like

data want;
  set have;
  new_fee = fee * (1 + Increase / 100);
run;

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!

Submit your idea!

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
  • 1 reply
  • 356 views
  • 1 like
  • 2 in conversation