BookmarkSubscribeRSS Feed
allurai0412
Fluorite | Level 6

hi ,

i am working with large data base , but i am providing the sample one.

DATA TAXSAVERS;
INPUT AMOUNT LOAD;
DATALINES;
2779 50
16050 50
18000 45
17000 65
2566  20
;
RUN;

I need the  REQUITED DATABASE as follows

1) The first step is "load should be deducted " i.e 2779-50=2729

2) The gross or final TAXSAVER amount should be multiple of 500...i.e 2729 ...would be 2500.

shall i  use the MOD function for the second step.

please help ....is there any PROC in SAS ...if not go ahead with PROC SQL...

3 REPLIES 3
RichardinOz
Quartz | Level 8

DATA TAXSAVERS;
     INPUT AMOUNT LOAD;

     nett = sum(amount, -load) ;

     taxsaver = round(nett - 250, 500) ;
DATALINES;
2779 50
16050 50
18000 45
17000 65
2566  20
;
RUN;

The sum function will calculate the nett amount and return only the original amount if you have null (missing) values for load.

The round function will calculate to the nearest multiple of, in this case, 500; to get the highest value less than or equal to the given amount take 250 off first.

Richard

allurai0412
Fluorite | Level 6

thanks richard good work...

is there any way to do in PROC SQL...?

Patrick
Opal | Level 21

Something like below?

DATA TAXSAVERS;
INPUT AMOUNT LOAD;
DATALINES;
2779 50
16050 50
18000 45
17000 65
2566  20
;
RUN;

proc sql;
  create table want as
  select round(amount-load,500) as taxsaver
  from taxsavers
  ;
quit;

SAS Innovate 2025: Register Now

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!

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 799 views
  • 5 likes
  • 3 in conversation